home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / musictex / older-versions / musictex.507 / MUSICTEX.TEX < prev    next >
Text File  |  1995-01-05  |  78KB  |  2,297 lines

  1. %
  2.  % THIS is MusicTeX 
  3. \message{Version 5.07 -- January 5th, 1995}%
  4.  
  5. \edef\catcodeat{\the\catcode`\@}\catcode`\@=11
  6.  
  7. \newif\ifcatcodesmusic
  8.  
  9. \def\catcodesmusic{\ifcatcodesmusic\relax
  10.  \else
  11.  \edef\catcode@gt{\the\catcode`\>}\catcode`\>=12%
  12.  \edef\catcode@lt{\the\catcode`\<}\catcode`\<=12%
  13.  \edef\catcode@vert{\the\catcode`\|}\catcode`\|=13%
  14.  \edef\catcode@and{\the\catcode`\&}\catcode`\&=13%
  15.  \edef\catcode@excl{\the\catcode`\!}\catcode`\!=12%
  16.  \edef\catcode@star{\the\catcode`\*}\catcode`\*=12%
  17.  \edef\catcode@pt{\the\catcode`\.}\catcode`\.=12%
  18.  \edef\catcode@sc{\the\catcode`\:}\catcode`\:=12%
  19.  \fi\catcodesmusictrue}
  20.  
  21.  \catcodesmusic
  22.  
  23.  %  PARAMETERS DIFFERENT THAN IN PLAIN
  24.  %
  25. \normallineskiplimit=\p@
  26. \parindent 10mm
  27.  %
  28.  % EXTRA FONTS NEEDED
  29.  %
  30. \font\enorme=\fonthdg\fonthdge bx12 scaled \magstep4
  31. \font\moyen=\fonthdg\fonthdge bx12 scaled \magstep1
  32. \font\tentt=\fonthdg\fonthdge tt10
  33. \font\ppffsixteen=\fonthdg\fonthdge bxti10
  34. \font\ppfftwenty=\fonthdg\fonthdge bxti10 scaled \magstep1
  35.  %
  36. \tolerance=10000\relax
  37.  %  procedures speciales D. taupin
  38.  % **** \hsize 16cm \vsize 24cm
  39.  %
  40. \let\@plainwlog=\wlog
  41. \def\wlog#1{}%
  42.  %
  43.  %\check
  44.  %
  45. \raggedbottom
  46. \def\p@t{\kern 1.5pt\pointfont\char"2E}%
  47. \def\P@t{\pt@raise\hbox{\p@t}}%
  48. \def\PP@t{\pt@raise\hbox{\p@t\char"2E}}%
  49. \def\PPP@t{\pt@raise\hbox{\p@t\char"2E\char"2E}}%
  50.  %
  51.  %\check
  52.  %
  53. \def\f@tok#1#2\af@tok{#1}%
  54. \def\s@tok#1#2\af@tok{#2}%
  55.  %
  56. \def\gl@au#1{\ifnum #1<0\relax\global\advance #1 by -1\relax\fi
  57.                  \ifnum #1>0\relax\global\advance #1 by 1\relax\fi}%
  58. \def\gl@de#1{\ifnum #1<0\relax\global\advance #1 by 1\relax\fi
  59.                  \ifnum #1>0\relax\global\advance #1 by -1\relax\fi}%
  60.  %
  61.  %
  62.  % Amount of skip needed at bar lines
  63. \newskip\tempsskip
  64. \newdimen\brace@w
  65. \newdimen\afterruleskip
  66. \newdimen\pt@up % offset point de notes pointees
  67. \newdimen\noteskip
  68. \newdimen\elemskip
  69. \newdimen\q@antum
  70. \newdimen\n@raise
  71. \newdimen\n@width
  72. \newdimen\stem@skip
  73. \newdimen\interligne % entre les lignes
  74.  %%%% \newdimen\nullthick % pour les parties sans portees (paroles)
  75. \newdimen\staffbotmarg % marge au-dessous des portees
  76. \newdimen\stafftopmarg % au-dessus des portees
  77. \newdimen\Internote % la moitie de \Interligne
  78. \def\internote{\Internote}%
  79. \newdimen\interbeam % distance entre poutres
  80. \newdimen\Interligne % de la base d'une ligne a l'autre
  81. \newdimen\interportee % distance between staffs of the same instrument (incl)
  82. \newdimen\Interportee % distance between staffs of the same instrument (excl)
  83. \newdimen\interinstrument % distance between instruments (added to \interportee)
  84. \newdimen\systemheight
  85.  %
  86. \newdimen\altplancher
  87. \newdimen\altportee
  88. \newdimen\line@width
  89. \newdimen\x@skip
  90. \newdimen\locx@skip
  91. \newdimen\st@bot  %  note stem bottom
  92. \newdimen\st@top     %  note stem top
  93.  %
  94.  % positions x et z de debut des tenues
  95. \newdimen\t@xi\newdimen\t@zi
  96. \newdimen\t@xii\newdimen\t@zii
  97. \newdimen\t@xiii\newdimen\t@ziii
  98. \newdimen\t@xiv\newdimen\t@ziv
  99. \newdimen\t@xv\newdimen\t@zv
  100. \newdimen\t@xvi\newdimen\t@zvi
  101.  %
  102. \newdimen\t@y
  103.  %
  104.  % signes des tenues ( \t@p: entier de -1 a +1 )
  105.  % etat des tenues ( \t@s: 0= inactive, 1= actif, 2= continuation )
  106.  %
  107. \newcount\t@pi\newcount\t@si
  108. \newcount\t@pii\newcount\t@sii
  109. \newcount\t@piii\newcount\t@siii
  110. \newcount\t@piv\newcount\t@siv
  111. \newcount\t@pv\newcount\t@sv
  112. \newcount\t@pvi\newcount\t@svi
  113.  %
  114.  % positions x et z de debut des poutres
  115. \newdimen\b@xi\newdimen\b@zi
  116. \newdimen\b@xii\newdimen\b@zii
  117. \newdimen\b@xiii\newdimen\b@ziii
  118. \newdimen\b@xiv\newdimen\b@ziv
  119. \newdimen\b@xv\newdimen\b@zv
  120. \newdimen\b@xvi\newdimen\b@zvi
  121.  %
  122. \newdimen\bb@xi\newdimen\bb@zi
  123. \newdimen\bb@xii\newdimen\bb@zii
  124. \newdimen\bb@xiii\newdimen\bb@ziii
  125. \newdimen\bb@xiv\newdimen\bb@ziv
  126. \newdimen\bb@xv\newdimen\bb@zv
  127. \newdimen\bb@xvi\newdimen\bb@zvi
  128.  %
  129. \newdimen\bbb@xi\newdimen\bbb@zi
  130. \newdimen\bbb@xii\newdimen\bbb@zii
  131. \newdimen\bbb@xiii\newdimen\bbb@ziii
  132. \newdimen\bbb@xiv\newdimen\bbb@ziv
  133. \newdimen\bbb@xv\newdimen\bbb@zv
  134. \newdimen\bbb@xvi\newdimen\bbb@zvi
  135.  %
  136. \newdimen\bbbb@zi
  137. \newdimen\bbbb@zii
  138. \newdimen\bbbb@ziii
  139. \newdimen\bbbb@ziv
  140. \newdimen\bbbb@zv
  141. \newdimen\bbbb@zvi
  142.  %
  143. \newdimen\bbbbb@zi
  144. \newdimen\bbbbb@zii
  145. \newdimen\bbbbb@ziii
  146. \newdimen\bbbbb@ziv
  147. \newdimen\bbbbb@zv
  148. \newdimen\bbbbb@zvi
  149.  %
  150.  % pentes des poutres ( entier de -3 a +3 )
  151.  % multiplicite des poutres ( de -5 a +5 .   0= inactive )
  152.  %
  153. \newcount\b@pi\newcount\b@ni
  154. \newcount\b@pii\newcount\b@nii
  155. \newcount\b@piii\newcount\b@niii
  156. \newcount\b@piv\newcount\b@niv
  157. \newcount\b@pv\newcount\b@nv
  158. \newcount\b@pvi\newcount\b@nvi
  159.  %
  160. \newif\ifraggedlines
  161.  %
  162. \newcount\barno
  163. \newcount\lastbarno
  164. \newcount\notes@open
  165. \def\check@nopen{\ifnum\notes@open>0\relax\enotes\errmessage{ missing
  166.  \noexpand\enotes\ mesure \the\barno}\fi}%
  167.  %
  168.  % altitudes des portees de chaque instrument
  169.  %
  170. \newcount\ut@ref
  171. \newcount\noportee
  172. \newcount\noinstrument
  173.  %
  174. \newcount\nbporteesi
  175. \newcount\nbporteesii
  176. \newcount\nbporteesiii
  177. \newcount\nbporteesiv
  178. \newcount\nbporteesv
  179. \newcount\nbporteesvi
  180.  %
  181. \newcount\signi
  182. \newcount\signii
  183. \newcount\signiii
  184. \newcount\signiv
  185. \newcount\signv
  186. \newcount\signvi
  187.  %
  188. \newif\ifadvance\advancetrue
  189. \newcount\transpose
  190. \newcount\normaltranspose
  191. \newcount\o@signi
  192. \newcount\o@signii
  193. \newcount\o@signiii
  194. \newcount\o@signiv
  195. \newcount\o@signv
  196. \newcount\o@signvi
  197.  %
  198. \newtoks\cleftoksi
  199. \newtoks\cleftoksii
  200. \newtoks\cleftoksiii
  201. \newtoks\cleftoksiv
  202. \newtoks\cleftoksv
  203. \newtoks\cleftoksvi
  204.  %
  205. \newtoks\o@cksi
  206. \newtoks\o@cksii
  207. \newtoks\o@cksiii
  208. \newtoks\o@cksiv
  209. \newtoks\o@cksv
  210. \newtoks\o@cksvi
  211.  %
  212. \newtoks\metertoksi
  213. \newtoks\metertoksii
  214. \newtoks\metertoksiii
  215. \newtoks\metertoksiv
  216. \newtoks\metertoksv
  217. \newtoks\metertoksvi
  218.  %
  219. \global\nbporteesi=1%
  220. \global\nbporteesii=1%
  221. \global\nbporteesiii=1%
  222. \global\nbporteesiv=1%
  223. \global\nbporteesv=1%
  224. \global\nbporteesvi=1%
  225. \global\cleftoksi={{0}{0}{0}{0}}%
  226. \global\cleftoksii={{0}{0}{0}{0}}%
  227. \global\cleftoksiii={{0}{0}{0}{0}}%
  228. \global\cleftoksiv={{0}{0}{0}{0}}%
  229. \global\cleftoksv={{0}{0}{0}{0}}%
  230. \global\cleftoksvi={{0}{0}{0}{0}}%
  231.  %
  232.  %\check
  233.  %
  234. \def\n@advance{\global\advance\noinstrument by 1\relax}%
  235. \def\n@loop{\global\noinstrument=0\relax\loop
  236.   \ifnum\noinstrument<\nbinstruments\relax\n@advance
  237.   \selectinstr}%
  238. \def\m@loop{\global\noinstrument=0\relax\loop
  239.   \ifnum\noinstrument<\maxinstruments\relax\n@advance
  240.   \selectinstr}%
  241.  %
  242. \def\savemeters{\savemeter}%
  243. \def\savemeter{\m@loop\global\metertoks={{}{}{}{}}\repeat}%
  244.  %\check
  245. \def\maxinstruments{6}%
  246.  %
  247. \def\selectinstr{%
  248. \xdef\altitude{\csname k@i\romannumeral\noinstrument\endcsname}%
  249. \xdef\nbportees{\csname nbportees\romannumeral\noinstrument\endcsname}%
  250. \xdef\staffspacing{\csname staffspacing\romannumeral\noinstrument\endcsname}%
  251. \xdef\stafflinesnb{\csname stafflinesnb\romannumeral\noinstrument\endcsname}%
  252. \xdef\clefdut{\csname clefdut\romannumeral\noinstrument\endcsname}%
  253. \xdef\clefdefa{\csname clefdefa\romannumeral\noinstrument\endcsname}%
  254. \xdef\clefdesol{\csname clefdesol\romannumeral\noinstrument\endcsname}%
  255. \xdef\internote{\csname internote\romannumeral\noinstrument\endcsname}%
  256. \xdef\sign{\csname sign\romannumeral\noinstrument\endcsname}%
  257. \xdef\o@sign{\csname o@sign\romannumeral\noinstrument\endcsname}%
  258. \xdef\cleftoks{\csname cleftoks\romannumeral\noinstrument\endcsname}%
  259. \xdef\metertoks{\csname metertoks\romannumeral\noinstrument\endcsname}%
  260. \xdef\o@cks{\csname o@cks\romannumeral\noinstrument\endcsname}%
  261. \interportee=\interfacteur\internote
  262. \interportee=2\interportee
  263. \Interportee=\interportee
  264. \advance\Interportee by -\stafflinesnb\internote
  265. \advance\Interportee by -\stafflinesnb\internote
  266. \advance\Interportee by 2\internote
  267. }
  268.  %\check
  269.  %
  270.  % compteurs de travail
  271.  %
  272. \newcount\n@i
  273. \newcount\n@ii
  274. \newcount\n@iii
  275.  %
  276.  % registres de travail
  277.  %
  278. \newbox\toks@box
  279. \newbox\workbox
  280. \newbox\n@otebox
  281.  %
  282.  %%%%\newdimen\clef@skip
  283. \newdimen\sign@skip
  284.  %
  285. \newdimen\y@
  286. \newdimen\y@i
  287. \newdimen\y@ii
  288. \newdimen\y@iii
  289. \newdimen\y@iv
  290. \newdimen\y@v
  291.  %
  292. \newtoks\arg@suite
  293. \def\hlthick{0.5\lthick}
  294. \def\vdlthick{\vrule depth \hlthick} 
  295.  %
  296.  % fabrique un jeu complet (ou systeme complet de portees)
  297.  % en fonction de \nbinstruments
  298. \def\null@portee{\global\advance\y@ by \nullthick
  299.     \ifdim\systemheight>\p@\global\advance\systemheight by \nullthick
  300.     \else
  301.      \global\advance\altplancher by \nullthick
  302.     \fi
  303. }%
  304.  %
  305.  %\check
  306.  %
  307. \ifx\mult@portee\undefined
  308.  \def\mult@portee{\y@ii=\nbportees\interportee
  309.     \advance\y@ii by -\Interportee
  310.     \advance\y@ii by \nbportees\lthick
  311.     \advance\y@ii by -\lthick
  312.  \raise\y@\llap{\cmex\raise 8\p@\rlap{\char'072}\raise\y@ii\rlap{\char
  313. '070}\divide\y@ii by 2\relax{\advance\y@ii by 8\p@\raise\y@ii\rlap{\char
  314. '074}}\y@v=\y@ii\relax\advance\y@v by -5\p@
  315.     \kern 3.8\p@
  316.     \vrule depth -5\p@ height \y@v width 1.2\p@ \kern -1.2\p@
  317.     \advance\y@v by \y@ii
  318.     \advance\y@ii by 5\p@
  319.     \vrule depth -\y@ii height \y@v width 1.2\p@
  320.     \kern 2.5\p@}}%
  321. \fi % end \ifx \mult@portee    
  322.  %
  323.  %\check
  324.  %
  325. \def\n@portee{\global\advance\noportee by 1\relax}%
  326. \def\p@loop{\global\noportee=0\relax
  327.    \loop\ifnum\noportee<\nbportees\relax\alt@comp}%
  328.  %
  329.  %\check
  330.  %
  331. \def\alt@comp{\altportee=\altitude
  332.   \advance\altportee by \noportee\interportee}%
  333.  %
  334. \def\lowersonginstrum{99}  % to be used to make heavy bars at staff left
  335. \def\uppersonginstrum{0}   % to be used to make heavy bars at staff left
  336. \newdimen\lowersongalt
  337. \newdimen\uppersongalt
  338.  %
  339. \def\portees{\rlap{\global\y@=\staffbotmarg
  340.  %
  341. \lowersongalt=\z@
  342. \uppersongalt=\z@
  343. \global\systemheight=\z@
  344. \global\altplancher=\y@
  345. \n@loop
  346.  %
  347.   \global\noportee=0\relax
  348.   \global\altitude=\y@
  349.   \ifnum\noinstrument=\lowersonginstrum\relax
  350.        \lowersongalt=\altitude
  351.   \fi
  352.  %
  353.   \ifnum\nbportees=0\relax
  354.      \null@portee
  355.   \else
  356.     \ifnum\nbportees>1\relax
  357.       \mult@portee
  358.     \fi
  359.     {\loop \raise\y@\portee
  360.       \n@portee \global\advance\y@ by \interportee
  361.       \global\advance\systemheight by \interportee
  362.       \ifnum\noportee<\nbportees
  363.      \repeat}\fi % fin du \else pour 0 portees=chant
  364.   \ifnum\noinstrument=\uppersonginstrum\relax\uppersongalt=\y@
  365.     \advance\uppersongalt by -\Interportee
  366.     \advance\uppersongalt by \hlthick
  367.   \fi
  368.   \ifnum\noinstrument<\nbinstruments   
  369.     \xdef\interinstrum{\csname interinstrument\romannumeral\noinstrument
  370.                      \endcsname}%
  371.     \expandafter\ifx\interinstrum\relax\xdef\interinstrum{\interinstrument}\fi
  372.     \global\advance\systemheight by \interinstrum
  373.     \global\advance\y@ by \interinstrum
  374.   \fi  
  375. \repeat
  376. \global\advance\systemheight by -\Interportee
  377. \global\advance\systemheight by \hlthick
  378.  %
  379. \raise\altplancher\rlap{\vdlthick height \systemheight}%
  380. \ifnum\uppersonginstrum>\lowersonginstrum\relax
  381.   \advance\uppersongalt by -\lowersongalt
  382.   \raise\lowersongalt
  383.     \llap{\vdlthick height \uppersongalt width 0.6\Interligne
  384.           \kern 0.3\Interligne
  385.           \vdlthick height \uppersongalt width \lthick}\type@songsymbols
  386. \fi  
  387. {\advance\stafftopmarg by \staffbotmarg
  388. \raise \stafftopmarg\hbox{\vdlthick height \systemheight width \z@}}}}%
  389.  %
  390.  %\check
  391.  % portee simple
  392. \def\staffline{\kern\internote\kern\internote\kern -\lthick
  393. \hrule width \line@width height \hlthick depth \hlthick
  394. }
  395. \def\portee{\rlap{\vbox to \z@ {\vss
  396. \ifnum\stafflinesnb>5\staffline\fi
  397. \ifnum\stafflinesnb>4\staffline\fi
  398. \ifnum\stafflinesnb>3\staffline\fi
  399. \ifnum\stafflinesnb>2\staffline\fi
  400. \ifnum\stafflinesnb>1\staffline\fi
  401. \ifnum\stafflinesnb>0\staffline\fi\kern -\hlthick
  402. }}}%
  403.  %\check
  404.  %
  405.  % initialisations des dimensions etc...
  406.  %
  407.  %*************** definition des titres des instruments
  408.  % ***********************
  409.  %
  410. \def\instrumenti{}%
  411. \def\instrumentii{}%
  412. \def\instrumentiii{}%
  413. \def\instrumentiv{}%
  414. \def\instrumentv{}%
  415. \def\instrumentvi{}%
  416.  %\check
  417.  %
  418. \def\maxlegatenuti{6}%
  419. \def\ten@loop{\global\n@l=0\relax\loop\ifnum\n@l<\maxlegatenuti\relax
  420.   \selecttenue{\n@l}}%
  421.  %
  422. \def\resettens{\resetlegs}%
  423. \newcount\n@l
  424. \def\resetlegs{\global\setbox\@tenubox
  425.   \hbox{\kern\tenboxwidth}\ten@loop \global\t@p=0\relax \global\t@s=0\relax
  426.   \global\advance\n@l by 1\relax
  427.   \repeat}%
  428.  %
  429.  %\check
  430.  %
  431. \def\piece@begina{\barno=1\relax\global\barsinline=0\relax
  432. \frenchspacing\ifnum1>\nbinstruments\errmessage{\noexpand\nbinstruments
  433.  not defined !}\fi
  434. \def\barvrule{\thinvrule}\resetlegs
  435. \savesignature\computewidths}%
  436.  %
  437. \def\debutmorceau{\catcodesmusic\leavevmode\piece@begina
  438. \advance\line@width by -\parindent
  439. \portees\instrumentnames
  440. \advance\line@width by \parindent
  441. \tempsskip=2pt  plus \gluemaxskip minus 2pt
  442. \zglueskip=0pt plus \gluemaxskip minus .5pt%
  443. \piece@beginb\setnormalhyphen}%
  444.  %
  445. \def\piece@beginb{\writeclefs\everystaff
  446. \writesignatures\writemeters
  447. \save@all\currenthyphenpenalty}%
  448.  %
  449. \def\save@all{\saveclefs\savesignature\savemeters}%
  450.  %
  451. \def\debutextrait{\catcodesmusic\piece@begina
  452. \setbox\workbox=\hbox{\portees}% to compute heights
  453. \setbox\workbox=\hbox\bgroup
  454. \def\barre{\xbarre}\piece@beginb}%
  455.  %\check
  456. \def\zfinextrait{\def\suspmorceau{\zsuspmorceau}\finextrait}
  457. \def\finextrait{\def\z@suspend{}\suspmorceau\egroup
  458. \line@width=\wd\workbox
  459. \centerline{\instrumentnames\portees\unhbox\workbox}\endcatcodesmusic}%
  460.  %
  461.  % saving penalties to be able to restore them at the end of music
  462.  %
  463. \def\savepenalties{\edef\restorepenalties{%
  464. \noexpand\linepenalty=\the\linepenalty\noexpand\relax
  465. \noexpand\interlinepenalty=\the\interlinepenalty\noexpand\relax
  466. \noexpand\hyphenpenalty=\the\hyphenpenalty\noexpand\relax
  467. \noexpand\exhyphenpenalty=\the\exhyphenpenalty\noexpand\relax
  468. \noexpand\finalhyphendemerits=\the\finalhyphendemerits\noexpand\relax
  469. \noexpand\doublehyphendemerits=\the\doublehyphendemerits\noexpand\relax
  470. \noexpand\adjdemerits=\the\adjdemerits\noexpand\relax
  471. \noexpand\pretolerance=\the\pretolerance\noexpand\relax
  472. }}%
  473.  %\check
  474. \def\computewidths{\computespecifics
  475. \interportee=\interfacteur\Interligne
  476. \Interportee=\interportee\advance\Interportee by -8\internote
  477. \ifdim\stafftopmarg<\p@ \stafftopmarg=\topfacteur\Interligne\fi
  478. \ifdim\staffbotmarg<\p@ \staffbotmarg=\bottomfacteur\Interligne\fi
  479. \global\interligne=\Interligne
  480. \global\Internote=0.5\Interligne
  481.  %
  482. \ifx\internotei\undefined\relax\else
  483.   \n@loop
  484.   % decide staffspacing
  485.     \expandafter\ifx\staffspacing \undefined\global\internote=\Internote
  486.     \else
  487.     \expandafter\ifx\staffspacing \relax\global\internote=\Internote
  488.           \else\global\internote=\staffspacing\Internote
  489.     \fi\fi
  490.   \repeat
  491. \fi
  492.  %
  493. \ifdim\nullthick<\p@ \global\nullthick=4\Interligne\fi
  494. \global\advance\interligne by -\lthick
  495.  %
  496. \afterruleskip=\stdafterruleskip
  497. \global\line@width=\hsize}%
  498.  %
  499. \def\stdafterruleskip{4\Internote}%
  500.  %
  501.  %\check
  502.  %
  503. \def\n@alaligne{\suspmorceau\lreprmorceau}%
  504. \def\n@zalaligne{\zsuspmorceau\lreprmorceau}%
  505. \def\lreprmorceau{\reprmorceau}%
  506. \def\suspmorceau{\check@nopen\gluebrule\newbar\z@suspend}%
  507. \def\zsuspmorceau{\check@nopen\termskip\z@suspend}%
  508. \def\z@suspend{\ifraggedlines\else\hfilneg\ \fi
  509.   \adv@bottom\par\removelastskip\endcatcodesmusic}%
  510. \def\alapage{\suspmorceau\preprmorceau}%
  511. \def\zalapage{\zsuspmorceau\preprmorceau}%
  512. \def\preprmorceau{\eject\global\linesinpage=0\relax\reprmorceau}%
  513. \def\reprmorceau{\catcodesmusic\atnextline\computewidths\noindent\leavevmode
  514. \global\barsinline=0\relax{\advance\linesinpage by 1\relax\message{Line \the
  515. \linesinpage:}}\relax
  516. \adv@bottom\portees\writeclefs\kern 0.5\Interligne\wbarno@x
  517. \kern -0.5\Interligne\everystaff
  518. \writesignatures\writemeters\zgluearule
  519. \save@all\currenthyphenpenalty\def\atnextline{}}%
  520.  %
  521. \def\everystaff{}\def\atnextline{}%
  522.  %\check
  523.  %
  524. \def\resetsignatures{\generalsignature{0}\savesignature}%
  525.  %
  526. \def\savesignature{\m@loop\o@sign=\sign\repeat}%
  527.  %\check
  528. \def\saveclefs{\m@loop\global\o@cks=\cleftoks\repeat}
  529.  %\check
  530.  %
  531.  % definitions en fonction du numero de l'instriment
  532.  %
  533. \newskip\zglueskip
  534.  %
  535. \def\meterfrac#1#2{\setbox\workbox=\vbox{\hbox{\ \meterfont
  536.  #1}\hbox{\ \meterfont #2}}%
  537. \vbox to 8\internote{\offinterlineskip\vss\hbox to \wd\workbox{\hss
  538. \meterfont #1\hss}\vss
  539. \vss\hbox to \wd\workbox{\hss\meterfont #2\hss}\vss}}%
  540.  %\check
  541. \newtoks\t@gene
  542. \def\generalmeter#1{\t@gene={{#1}{#1}{#1}{#1}}\m@loop
  543. \global\metertoks=\t@gene\repeat}%
  544.  %\check
  545. \def\signaturegenerale{\generalsignature}%
  546. \def\generalsignature#1{\m@loop\sign=#1\relax\repeat}%
  547.  %
  548.  % compteurs de travail
  549.  %
  550.  % a completer pour fermer les poutres
  551. \def\zglu{\zglue}%
  552. \def\zglue{\nobreak\@tenleader{\zglueskip}\nobreak}%
  553.  %
  554. \def\n@skmb{\nobreak\global\advance\n@skip by -\brace@w}%
  555.  %
  556. \def\temps{\n@skmb\termskip\nobreak\zglu\nobreak\skip@b}%
  557. \def\changesignatures{\changesignature}%
  558. \def\changesignature{\n@skmb\termskip\nobreak\zglu\nobreak
  559.    \skip@b\writenewsignatures}%
  560. \def\z@barre{\n@skmb\termskip\nobreak\skip@b\-\hskip\zglueskip\nobreak}%
  561.  
  562. \def\xz@barre{\temps}%
  563.  %
  564. \def\newbar{\barvrule\def\barvrule{\thinvrule}\message{bar \the\barno}%
  565. \global\advance\barno by 1\relax}%
  566.  %
  567. \def\w@barno{\global\n@iii=\barno\global\divide\n@iii by \freqbarno\relax
  568. \ifnum\n@iii=\lastbarno\relax
  569. \else{\y@i=\altplancher\advance\y@i by \systemheight
  570. \advance\y@i by 2\internote\raise\y@i\llap{\it \number\barno
  571.    \kern -6\p@}}\fi\global\lastbarno=\n@iii
  572. }%
  573. \newif\ifprimavolta
  574. \newif\ifsecondavolta
  575. \def\freqbarno{1}\def\wbarno{\w@barno}
  576. \def\wbarno@x{\ifprimavolta\make@prima 1\else
  577.               \ifsecondavolta\make@prima 2\else
  578.               \wbarno
  579.               \fi\fi
  580.    \primavoltafalse\secondavoltafalse
  581.    \global\n@iii=\barno\global\divide\n@iii by \freqbarno\relax
  582.    \global\lastbarno=\n@iii}
  583. %
  584.  \def\Setprimavolta#1#2{\primavoltatrue\def\up@volta{#1}\def\lg@volta{#2}}
  585.  \def\setprimavolta{\Setprimavolta{2\Interligne}{1cm}}
  586.  
  587.  \def\Setsecondavolta#1#2{\secondavoltatrue\def\up@volta{#1}\def\lg@volta{#2}}
  588.  \def\setsecondavolta{\Setsecondavolta{2\Interligne}{1cm}}
  589.  
  590. \def\make@prima#1{{\y@i=\altplancher\advance\y@i by \systemheight
  591. \advance\y@i by \up@volta
  592.   \raise\y@i\rlap{\vrule height 2\Interligne\rm\ #1.}\advance\y@i 2\Interligne
  593.   \raise\y@i\rlap{\vrule height \z@ depth \lthick width \lg@volta}%
  594.    }}
  595. \def\up@volta{2\Interligne}\def\lg@volta{1cm}   
  596.  %
  597.  % discretionary line breaking
  598.  %
  599. \def\noautolines{\def\barre{\n@barre}\def\zbarre{\z@barre}%
  600. \def\alaligne{\c@ountline\n@alaligne}\def\zalaligne{\n@zalaligne}%
  601. \def\currenthyphenpenalty{\setnohyphenpenalty}%
  602. \def\updatecontext{\n@updatecon}%
  603. \def\leftrepeat{\n@leftrepeat}%
  604. \def\leftrightrepeat{\n@leftrightrepeat}%
  605. \setnohyphenpenalty}%
  606.  %
  607. \def\setnohyphenpenalty{\linepenalty=500\pretolerance=-1%
  608. \finalhyphendemerits=-10\hyphenpenalty=-10%
  609. \exhyphenpenalty=0\doublehyphendemerits=0%
  610. \adjdemerits=0\interlinepenalty=0}%
  611.  %
  612. \def\sethyphenpenalty{\linepenalty=500\pretolerance=-1%
  613. \finalhyphendemerits=1000\hyphenpenalty=1000%
  614. \exhyphenpenalty=0\doublehyphendemerits=0%
  615. \adjdemerits=0\interlinepenalty=1000}%
  616.  %
  617. \newcount\barsinline
  618. \newcount\linesinpage
  619. \newcount\maxbarsinline
  620. \newcount\maxlinesinpage
  621. \def\c@ountbar{\global\advance\barsinline by 1\relax}%
  622. \def\c@ountline{\global\advance\linesinpage by 1\relax}%
  623.  %
  624. \def\autolines#1#2#3{% #1 nombre d'elemskip par mesure,
  625.  %                      #2 nombre de mesures par ligne,
  626.  %                      #3 nb lignes par page
  627. \global\maxbarsinline=#2\relax
  628. \global\maxlinesinpage=#3\relax
  629. \global\elemskip=\line@width\global\advance\elemskip by -10\Internote
  630. \global\divide\elemskip by \maxbarsinline\relax
  631. \global\advance\elemskip by -6\Internote\global\divide\elemskip by #1\relax
  632. \def\barre{\t@barre}\def\updatecontext{\t@updatecon}\def\zbarre{\t@zbarre}%
  633. \def\alaligne{\t@alaligne}\def\zalaligne{\t@zalaligne}%
  634. \def\leftrepeat{\t@leftrepeat}%
  635. \def\leftrightrepeat{\t@leftrightrepeat}%
  636. \def\currenthyphpenalsty{\sethyphenpenalty}\sethyphenpenalty}%
  637.  %
  638. \def\t@barre{\c@ountbar
  639. \ifnum\barsinline<\maxbarsinline\relax\x@barre
  640. \else\t@alaligne
  641. \fi}%
  642. \def\t@zbarre{\c@ountbar
  643. \ifnum\barsinline<\maxbarsinline\relax\xz@barre
  644. \else\t@zalaligne
  645. \fi}%
  646.  %
  647. \def\t@alaligne{\c@ountline
  648. \ifnum\linesinpage<\maxlinesinpage\relax\n@alaligne
  649. \else\alapage
  650. \fi}%
  651. \def\t@zalaligne{\c@ountline
  652. \ifnum\linesinpage<\maxlinesinpage\relax\n@zalaligne
  653. \else\zalapage
  654. \fi}%
  655.  %
  656. \def\Suspmorceau{\c@ountline\finmorceau
  657.  \ifnum\linesinpage<\maxlinesinpage\relax\else\eject
  658.  \global\linesinpage=0\relax\fi}%
  659.  %
  660.  %
  661. \def\tz@barre{\c@ountbar
  662. \ifnum\barsinline<\maxbarsinline\relax\z@barre
  663. \else
  664.  \c@ountline
  665.  \ifnum\linesinpage<\maxlinesinpage\relax\zalaligne
  666.  \global\advance\linesinpage by -1\relax % car \alaligne aura aussi augmente
  667.  \else\zalapage
  668. \fi\fi}%
  669.  %
  670. \def\t@updatecon{\c@ountbar
  671.   \ifnum\barsinline<\maxbarsinline\relax\x@updatecon
  672. \else
  673.  \c@ountline
  674.  \ifnum\linesinpage<\maxlinesinpage\l@updatecon
  675.  \else\p@updatecon
  676. \fi\fi}%
  677.  %\check
  678.  %
  679. \noautolines
  680.  %
  681. \def\n@barre{\gluebrule\newbar\gluearule}%   barre de mesure
  682. \def\xbarre{\c@ountbar\x@barre}
  683. \def\xbeambarre{\notes\charnote0{\hss\altplancher=\z@\newbar\wbarno@x}\enotes}
  684. \def\x@barre{\gluebrule\newbar\zgluearule}%  barre de mesure
  685.                                           % sans possibilite de saut
  686.  %
  687. \def\d@oubleBAR{\thinvrule\nobreak\hskip
  688. 0.6\Internote\global\advance\x@skip0.6\Internote
  689. \nobreak\thickvrule}%
  690.  %
  691. \def\addspace#1{\kern#1\global\advance\x@skip#1}
  692.  %
  693. \def\d@oublebar{\thinvrule\nobreak\hskip 0.8\Internote
  694. \global\advance\x@skip0.8\Internote
  695. \nobreak\thinvrule}%
  696.  %
  697. \def\r@ightrepeat{\hbox{\w@colons\d@oubleBAR}\global\advance\x@skip
  698.    7.12\Internote}
  699. \def\l@eftrepeat{\hbox{\thickvrule\kern 0.6\Internote\thinvrule\w@colons
  700. }\global\advance\x@skip7.12\Internote}
  701. \def\l@eftrightrepeat{\hbox{\w@colons\thickvrule
  702.     \kern 0.6\Internote\thickvrule\w@colons}\global\advance\x@skip
  703.    6.2\Internote}
  704.  %
  705.  %\check
  706.  %
  707. \def\leftrightrepeatsymbol{\gluebrule\l@eftrightrepeat\glueaftersymbol}
  708. \def\glueaftersymbol{{\def\wbarno{}\afterruleskip=\Internote\zgluearule}}%
  709. \def\leftrepeatsymbol{\gluebrule\l@eftrepeat\glueaftersymbol}%
  710. \def\rightrepeatsymbol{\gluebrule\r@ightrepeat\glueaftersymbol}%
  711.  %
  712.  %\check
  713.  %
  714. \def\doublebarre{\setdoublebar\barre}% double barre de mesure
  715. \def\setdoublebar{\def\barvrule{\d@oublebar}}%
  716. \def\setdoubleBAR{\def\barvrule{\d@oubleBAR}}%
  717. \def\rightrepeat{\setrightrepeat\barre}%
  718. \def\finrightrepeat{\setrightrepeat\suspmorceau}%
  719.  %
  720. \def\setrightrepeat{\def\barvrule{\r@ightrepeat}}%
  721. \def\setleftrepeat{\def\barvrule{\l@eftrepeat}}%
  722. \def\setleftrightrepeat{\def\barvrule{\l@eftrightrepeat}}%
  723.  %
  724. \def\think@vrule@f#1{\raise\altplancher\hbox{\vdlthick height\systemheight width
  725.  #1}\global\advance\x@skip by #1}%
  726.  
  727. \def\stdbarrules{\def\think@vrule{\think@vrule@f}} % standard v rules over all instruments
  728. \stdbarrules
  729.  
  730. \def\sepbarrules{\def\think@vrule{\think@vrule@s}} % standard v rules over all instruments
  731.  %
  732. \def\think@vrule@s#1{\n@loop \selectinstr
  733.   \y@v=\nbportees\interportee \advance\y@v -\Interportee \advance\y@v \lthick
  734.   \raise\altitude  \hbox to \z@{\vdlthick width #1 height
  735.  \y@v\hss}\repeat
  736.  \global\advance\x@skip by #1\kern #1} % separated vrules par instrum
  737.  
  738.  %\check
  739. \def\vrule@inst#1{\selectinstr{\p@loop\raise\altportee
  740.   \hbox to \z@{\vrule width #1 height 8\internote\hss}\n@portee\repeat}}%
  741.  %
  742.  %
  743. \def\thinvrule{\think@vrule{\lthick}}%
  744. \def\thickvrule{\think@vrule{1.2\Internote}}%
  745.  %
  746. \def\finmorceau{\setdoubleBAR\suspmorceau}%
  747.  %\check
  748.  %
  749. \def\c@other{}% void, but possibly changed by lines.tex... and others
  750. \def\gluearule{\-\zgluearule}%
  751. \def\zgluearule{\nobreak\wbarno@x\ygluearule}%
  752. \def\ygluearule{\nobreak\kern\afterruleskip\nobreak
  753.  \global\advance\x@skip\afterruleskip\global\n@skip=\z@}%
  754.  % terminate skips and continue slurs and ties if any
  755. \def\termskip{\upd@sk
  756.   \ten@loop\ifnum\t@s=0\relax
  757.             \else\c@ten
  758.             \fi
  759.     \global\advance\n@l by 1\relax
  760.   \repeat\nobreak
  761.   \c@other\nobreak
  762. \global\n@skip=\z@\global\x@skip=\z@}%
  763.  %
  764. \def\gluebrule{\nobreak\termskip\@tenleader{\tempsskip}\nobreak}%
  765.  %
  766. \def\writesignatures{\global\sign@skip=\z@
  767. \w@ritesigns
  768. \global\advance\sign@skip by 0.4\Internote \nobreak\hskip\sign@skip
  769. }%
  770. \def\Writesignatures{\global\sign@skip=\z@
  771. \w@ritesigns
  772. \nobreak\advance\sign@skip by 1.2\Internote\kern\sign@skip\nobreak}%
  773.  %
  774. \def\w@ritesigns{\n@loop\writesigni\repeat}%
  775.  %
  776.  %\check
  777. \def\instrumentnames{\n@loop\writeinsname\repeat}%
  778.  %
  779.  %\check
  780. \def\writenewsignatures{\global\sign@skip=\z@
  781.   \n@loop\writenewsigni\repeat
  782.   \nobreak\ifdim\sign@skip>0.1pt\global\advance\sign@skip by 1.2\Internote
  783.   \nobreak\global\n@skip=\sign@skip\termskip
  784.   \fi
  785.   \nobreak}%
  786.  %
  787.  %\check
  788.  %
  789.  % normal hyphenation process when \noautolines
  790.  %
  791. \def\setnormalhyphen{\edef\-{\noexpand\discretionary{}%
  792.  %\check 2
  793. {\noexpand\hbox{\noexpand\portees\noexpand\writeclefs
  794. \noexpand\everystaff}%
  795. \noexpand\hbox{\noexpand\writesignatures}%
  796. }%
  797.  %\check 2
  798. {}}}%   fin du def \setnormalhyphen
  799.  %\check
  800.  %    ecrire toutes les indications de mesure sur toutes les portees
  801. \def\writemeters{\global\n@skip=\z@
  802. \n@loop\writemeteri\repeat\nobreak
  803. \ifdim\n@skip>\z@\advance\n@skip by 1.2\Internote
  804.   \global\n@skip=\n@skip\termskip
  805. \fi\nobreak}%
  806.  %
  807.  %\check
  808. \def\writemeteri{\nobreak\selectinstr{\p@loop
  809.  \edef\w@call{\noexpand\writemeterp{\noexpand\noportee}\the\metertoks}\relax
  810.   \setbox\toks@box=\hbox{\w@call{}{}{}{}}\relax
  811.   \ifdim\n@skip<\wd\toks@box\global\n@skip=\wd\toks@box\fi
  812.   \raise\altportee\rlap {\box\toks@box}\n@portee
  813.   \repeat}}%
  814.  %\check
  815. \def\writeclefs{%    ecrire toutes les clefs sur toutes les portees
  816. \global\clef@skip=\z@
  817. \w@riteclefs
  818. \kern\clef@skip}%
  819.  %
  820. \def\w@riteclefs{\n@loop\writeclefi\repeat}%
  821.  %
  822.  %\check
  823. \def\writenewclefs{% ecrire toutes les nouvelles clefs sur toutes les
  824.  % portees
  825. \global\clef@skip=\z@
  826. \w@ritenewclefi
  827. \kern\clef@skip\global\advance\x@skip\clef@skip\nobreak}%
  828.  %
  829. \def\w@ritenewclefi{\n@loop\writenewclefi\repeat}%
  830.  %
  831.  %\check
  832. \def\writesigni{\selectinstr\def\o@test{999}\w@ritenewsigni}%
  833. \def\writenewsigni{\selectinstr\def\o@test{\o@sign}\w@ritenewsigni}%
  834. \def\w@ritenewsigni{{\p@loop
  835.   \n@portee
  836.   \ifnum\o@test=\sign\relax\else
  837.     \edef\get@ref{\noexpand\get@refs\the\cleftoks{}{}{}{}}%
  838.     \setbox\toks@box=\hbox{\kern 0.4\Internote\get@ref\compnwsign
  839.          \kern 0.4\Internote}%
  840.     \ifdim\sign@skip<\wd\toks@box \global\sign@skip=\wd\toks@box\fi
  841.     \raise\altportee\rlap{\box\toks@box}%
  842.   \fi
  843. \repeat}%
  844. }%
  845.  %\check
  846. \def\writeinsname{\selectinstr
  847. \xdef\instrument{\csname instrument\romannumeral
  848. \noinstrument\endcsname}%
  849. \altportee=\altitude
  850. \ifnum\nbportees>0\relax\advance\altportee by \nbportees\interportee
  851.   \advance\altportee by -\Interportee
  852.   \advance\altportee by \altitude\divide\altportee by 2\relax
  853. \fi
  854.  \setbox\n@otebox=\llap{\vbox{\hsize=\parindent\advance\hsize by
  855.  -0.8\Internote \centerline{\instrument}}\
  856.   \kern 2\p@}\advance\altportee by -0.5\ht\n@otebox
  857.   \raise\altportee\box\n@otebox
  858. }%
  859.  %\check
  860. \def\get@refs#1#2#3#4{%   #1-#4: cle correspondante 0=sol, 6=fa, 1-4=ut  .
  861. \ifcase\noportee\relax\global\ut@ref=0\relax
  862. \or\global\ut@ref=#1\relax
  863. \or\global\ut@ref=#2\relax
  864. \or\global\ut@ref=#3\relax
  865. \or\global\ut@ref=#4\relax
  866. \fi}
  867. \def\compnwsign{\ifnum\o@sign=0\relax
  868.                 \else\ifnum\sign=0\relax
  869.                      \else\kern 0.4\Internote
  870.                      \fi
  871.                 \fi
  872.    \ifnum\o@sign<0\relax\w@flats\w@sharps
  873.    \else\w@sharps\w@flats
  874.    \fi}%
  875.  %
  876.  %\check
  877. \def\w@flats{%
  878. \ifnum\sign<0\relax\s@bemol{6}\else\ifnum\o@sign<0\relax\s@becarre{6}\fi\fi
  879. \ifnum\sign<-1\relax\s@bemol{9}\else\ifnum\o@sign<-1\relax\s@becarre{9}\fi
  880. \fi
  881. \ifnum\sign<-2\relax\s@bemol{5}\else\ifnum\o@sign<-2\relax\s@becarre{5}\fi
  882. \fi
  883. \ifnum\sign<-3\relax\s@bemol{8}\else\ifnum\o@sign<-3\relax\s@becarre{8}\fi
  884. \fi
  885. \ifnum\sign<-4\relax\s@bemol{4}\else\ifnum\o@sign<-4\relax\s@becarre{4}\fi
  886. \fi
  887. \ifnum\sign<-5\relax\s@bemol{7}\else\ifnum\o@sign<-5\relax\s@becarre{7}\fi
  888. \fi
  889. \ifnum\sign<-6\relax\s@bemol{3}\else\ifnum\o@sign<-6\relax\s@becarre{3}\fi
  890. \fi
  891. }%
  892.  %\check
  893. \def\w@sharps{%
  894. \ifnum\sign>0\relax\s@dieze{10}\else\ifnum\o@sign>0\relax\s@becarre{10}\fi
  895. \fi
  896. \ifnum\sign>1\relax\s@dieze{7}\else\ifnum\o@sign>1\relax\s@becarre{7}\fi\fi
  897. \ifnum\sign>2\relax\s@dieze{11}\else\ifnum\o@sign>2\relax\s@becarre{11}\fi
  898. \fi
  899. \ifnum\sign>3\relax\s@dieze{8}\else\ifnum\o@sign>3\relax\s@becarre{8}\fi\fi
  900. \ifnum\sign>4\relax\s@dieze{5}\else\ifnum\o@sign>4\relax\s@becarre{5}\fi\fi
  901. \ifnum\sign>5\relax\s@dieze{9}\else\ifnum\o@sign>5\relax\s@becarre{9}\fi\fi
  902. \ifnum\sign>6\relax\s@dieze{6}\else\ifnum\o@sign>6\relax\s@becarre{6}\fi\fi
  903. }%
  904.  %\check
  905. \def\s@bemol#1{\global\n@iii=#1\relax
  906.  \p@bedieze\global\advance\y@iii by \fl@raise\raise\y@iii\hbox to
  907.  2.08\internote{\def\musicnfont{\musickeyfont}\hss\f@lat\hss}%
  908. }%
  909. \def\s@becarre#1{\global\n@iii=#1\relax
  910.  \p@bedieze\global\advance\y@iii by \na@raise\raise\y@iii\hbox to
  911.  2.08\internote{\def\musicnfont{\musickeyfont}\hss\n@at\hss}%
  912. }%
  913. \def\s@dieze#1{\global\n@iii=#1\relax
  914.  \p@bedieze\global\advance\y@iii by \sh@raise\raise\y@iii\hbox to
  915.  2.16\internote{\def\musicnfont{\musickeyfont}\hss\s@harp\hss}%
  916. }%
  917.  %
  918. \def\p@bedieze{\global\advance\n@iii by \ut@ref\relax
  919.    \global\advance\n@iii by \ut@ref\relax
  920.  %   cas de la cle de fa
  921.    \ifnum\ut@ref=6\global\advance\n@iii by -14\relax\else
  922.    \ifnum\ut@ref>0\global\advance\n@iii by -7\relax\fi\fi
  923.    \ifnum\n@iii<1\relax\global\advance\n@iii by 7\relax\fi
  924.    \ifnum\n@iii<1\relax\global\advance\n@iii by 7\relax\fi
  925.    \ifnum\n@iii>11\relax\global\advance\n@iii by -7\relax\fi
  926.    \ifnum\n@iii>11\relax\global\advance\n@iii by -7\relax\fi
  927.    \global\y@iii=\n@iii\internote
  928.    \global\advance\y@iii by -2\internote
  929. }
  930.  %\check
  931.  %
  932.  %\check
  933.  %
  934. \def\writeclefp#1#2#3#4#5{%
  935. \n@i=#1\relax
  936. \ifcase\n@i\singleclef{#2}%
  937. \or\singleclef{#3}\or\singleclef{#4}\or\singleclef{#5}\fi
  938. }%
  939.  %
  940.  %\check
  941. \def\writemeterp#1#2#3#4#5{%
  942. \n@i=#1\relax
  943. \ifcase\n@i\hbox{#2}\or\hbox{#3}\or\hbox{#4}\or\hbox{#5}\fi
  944. }%
  945.  %
  946.  %\check
  947. \def\writenewclefp#1#2#3#4#5#6#7#8#9{%
  948. \n@i=#1\relax
  949. \ifcase\n@i\newsingleclef{#2}{#6}%
  950. \or\newsingleclef{#3}{#7}\or\newsingleclef{#4}{#8}\or
  951. \newsingleclef{#5}{#9}\fi
  952. }%
  953.  %\check
  954.  %
  955. \def\singleclef#1{%
  956. \global\n@iii=#1\relax
  957. \charclef
  958. }%
  959.  %\check
  960.  %
  961. \def\Clefdut{\global\advance\n@iii by -3\relax\raise\n@iii\Interligne\clefdut}%
  962. \def\Clefdefa{\global\advance\n@iii by -6\relax
  963. \raise\n@iii\Interligne\clefdefa}
  964.  %
  965. \def\charclef{%
  966. \ifdim\clef@skip<4.8\Internote\global\clef@skip=4.8\Internote\fi
  967. \ifcase\n@iii\relax\clefdesol\relax
  968. \or{\Clefdut}%
  969. \or{\Clefdut}%
  970. \or{\Clefdut}%
  971. \or{\Clefdut}%
  972. \or{\Clefdefa}%
  973. \or{\Clefdefa}%
  974. \fi}%
  975.  %\check
  976.  %
  977. \def\smallClefdut{\global\advance\n@iii by -3\relax\raise\n@iii
  978. \Interligne\smallclefdut}%
  979. \def\smallClefdefa{\global\advance\n@iii by -6\relax\raise\n@iii
  980. \Interligne\smallclefdefa}%
  981. \def\smallcharclef{%
  982. \ifdim\clef@skip<4.8\Internote\global\clef@skip=4.8\Internote\fi
  983. \ifcase\n@iii\relax\smallclefdesol\relax
  984. \or{\smallClefdut}%
  985. \or{\smallClefdut}%
  986. \or{\smallClefdut}%
  987. \or{\smallClefdut}%
  988. \or{\smallClefdefa}%
  989. \or{\smallClefdefa}%
  990. \fi}%
  991.  %\check
  992. \def\newsingleclef#1#2{%
  993. \global\n@iii=#1\relax
  994. \n@ii=#2\relax
  995. \ifnum\n@ii=\n@iii\relax\else\smallcharclef
  996. \fi}%
  997.  %\check
  998. \def\writeclefi{\selectinstr
  999. {\p@loop
  1000.   \edef\w@call{\noexpand\writeclefp{\noexpand\noportee}\the\cleftoks}%
  1001.   \setbox\toks@box=\hbox{\w@call{}{}{}{}}%
  1002.   \ifdim\clef@skip<\wd\toks@box \global\clef@skip=\wd\toks@box\fi
  1003.   \raise\altportee\rlap{\box\toks@box}\n@portee
  1004.   \repeat}%
  1005. }%
  1006.  %\check
  1007. \def\writenewclefi{\selectinstr{\p@loop
  1008.  \edef\w@call{\noexpand\writenewclefp{\noexpand\noportee}\the\cleftoks\the
  1009. \o@cks}%
  1010. \setbox\toks@box=\hbox{\w@call{}{}{}{}}%
  1011. \ifdim\clef@skip<\wd\toks@box \global\clef@skip=\wd\toks@box\fi
  1012.   \raise\altportee\rlap{\box\toks@box}\n@portee\repeat}%
  1013. }%
  1014.  %\check
  1015.  % minuscule: une seule barre
  1016.  % majuscule: double barre
  1017. \def\changecontexte{\changecontext}%
  1018. \def\Changecontexte{\Changecontext}%
  1019.  %
  1020. \def\changecontext{\gluebrule\newbar\nobreak\updatecontext}%
  1021. \def\pchangecontext{\gluebrule\newbar\nobreak\p@updatecon}%
  1022.  %\check
  1023. \def\Changecontext{\setdoublebar\changecontext}%
  1024. \def\pChangecontext{\setdoublebar\pchangecontext}%
  1025.  %
  1026.  % write colons on all staffs (a part of [left][right]repeat symbols
  1027.  %
  1028. \def\wrcolons{\w@colons}%
  1029. \def\w@colons{\nobreak\hskip 0.8\Internote\nobreak
  1030.   \n@loop \w@coli\repeat
  1031.   \nobreak\hskip 0.8\Internote\nobreak}%
  1032.  %
  1033.  %\check
  1034.  %
  1035. \def\n@updatecon{%  imprime tout ce qui est nouveau
  1036. \nobreak\writenewclefs
  1037. \nobreak\writenewsignatures\nobreak\setnormalhyphen\-\writemeters\zgluearule
  1038. \save@all}%
  1039.  %
  1040. \def\x@updatecon{%  imprime tout ce qui est nouveau
  1041. \nobreak\writenewclefs\nobreak\wbarno@x
  1042. \nobreak\writenewsignatures\nobreak\writemeters\ygluearule
  1043. \save@all}%
  1044.  %
  1045. \def\l@updatecon{\nobreak\writenewclefs\nobreak\writenewsignatures
  1046. \z@suspend\reprmorceau}%
  1047.  %
  1048. \def\p@updatecon{\nobreak\writenewclefs\nobreak\writenewsignatures
  1049. \z@suspend\preprmorceau}%
  1050.  %
  1051.  %\check
  1052.  %
  1053. \def\n@leftrepeat{\gluebrule
  1054. \nobreak\writenewclefs
  1055. \discretionary{\newbar}%
  1056.  %\check 1
  1057. {\hbox{\portees\writeclefs\everystaff\Writesignatures}%
  1058. \l@eftrepeat\hbox{\writemeters}}%
  1059.  %\check 1
  1060. {\l@eftrepeat}\nobreak\writemeters\zgluearule
  1061. \save@all\setnormalhyphen}%
  1062.  %
  1063.  %\check
  1064.  %
  1065. \def\n@leftrightrepeat{\gluebrule
  1066. \nobreak\writenewclefs
  1067.  %
  1068. \discretionary{\setrightrepeat\newbar}%
  1069.  %\check 1
  1070. {\hbox{\portees\writeclefs\everystaff\Writesignatures
  1071. \l@eftrepeat\writemeters}}%
  1072.  %\check 1
  1073. {\l@eftrightrepeat}\nobreak\writemeters\zgluearule
  1074. \save@all\setnormalhyphen}%
  1075.  %
  1076. \def\t@leftrepeat{\c@ountbar
  1077.   \ifnum\barsinline<\maxbarsinline\relax\setleftrepeat\x@barre
  1078. \else
  1079.  \c@ountline
  1080.  \ifnum\linesinpage<\maxlinesinpage\l@leftrepeat
  1081.  \else\p@leftrepeat
  1082. \fi\fi}%
  1083.  %
  1084.  %\check
  1085.  %
  1086. \def\t@leftrightrepeat{\c@ountbar
  1087.   \ifnum\barsinline<\maxbarsinline\relax\setleftrightrepeat\x@barre
  1088. \else
  1089.  \c@ountline
  1090.  \ifnum\linesinpage<\maxlinesinpage\l@leftrightrepeat
  1091.  \else\p@leftrightrepeat
  1092. \fi\fi}%
  1093.  %
  1094.  %\check
  1095.  %
  1096. \def\l@leftrepeat{\suspmorceau
  1097.   \reprmorceau\l@eftrepeat}%
  1098.  %
  1099. \def\p@leftrepeat{\suspmorceau
  1100.   \preprmorceau\l@eftrepeat}%
  1101.  %
  1102.  %\check
  1103.  %
  1104. \def\l@leftrightrepeat{\setrightrepeat\suspmorceau
  1105.   \reprmorceau\l@eftrepeat}%
  1106.  %
  1107. \def\p@leftrightrepeat{\setrightrepeat\suspmorceau
  1108.   \preprmorceau\l@eftrepeat}%
  1109.  %
  1110. \def\Changeclef{\Changeclefs}\def\Changeclefs{%
  1111. \gluebrule\thinvrule\nobreak\hskip 1.2\Internote\nobreak\newbar
  1112. \nobreak\writenewclefs\saveclefs}%
  1113.  %\check
  1114. \def\changeclefs{\termskip\writenewclefs\saveclefs}%
  1115.  %\check
  1116.  %**************************************************************************
  1117.  %                    les notes proprement dites
  1118.  %**************************************************************************
  1119. \def\vnotes#1\elemskip{\noteskip=#1\elemskip \n@otes}%
  1120. \def\znotes{\noteskip=\z@\n@otes}%
  1121. \def\multnoteskip#1{\noteskip=#1\noteskip\relax}%
  1122. \def\scalenoteskip{1.0}%
  1123.  %
  1124.  %\check
  1125.  %
  1126. \def\enotes{\e@notes}%
  1127.  %
  1128. \newdimen\n@skip
  1129. \def\skip@n{\hskip \n@skip}%
  1130. \def\skip@b{\hskip \brace@w\global\advance\x@skip by\brace@w}%
  1131.  %
  1132. \def\upd@sk{\nobreak\skip@n\global\advance\x@skip by\n@skip\nobreak}%
  1133.  %
  1134. \def\nextstaff{\endstaff\beginstaff}%
  1135. \def\nextinstrument{\endinstrument\begininstrument}%
  1136.  %
  1137. \def\n@otes{\def|{\nextstaff}\def&{\nextinstrument}\normaltranspose=\transpose
  1138. \multnoteskip{\scalenoteskip}\check@nopen
  1139. \global\advance\notes@open by 1\relax\upd@sk
  1140. \def\rq{\rq@}\def\lq{\lq@}\def\ds{\demisoupir}\relax
  1141. \locx@skip=\x@skip
  1142. \global\n@skip=\noteskip
  1143. \global\noinstrument=0\relax
  1144. \begininstrument}%
  1145.  %
  1146.  %\check
  1147. \def\begininstrument{\global\advance\noinstrument by 1\relax
  1148. \selectinstr\resetstem
  1149. \ifdim\internote<0.76\Internote\csname set@tinynotesize\endcsname
  1150.   \computespecifics
  1151. \else\ifdim\internote<0.95\Internote\csname set@smallnotesize\endcsname
  1152.            \computespecifics
  1153.      \else\csname currentsize\endcsname\fi
  1154. \fi     
  1155. \global\noportee=0\relax\beginstaff
  1156. }%
  1157.  %\check
  1158.  %
  1159. \def\endinstrument{\endstaff}%
  1160.  %\check
  1161.  %
  1162. \def\beginstaff{\alt@comp
  1163.   \n@portee
  1164.   \edef\get@ref{\noexpand\get@refs\the\cleftoks{}{}{}{}}\relax\get@ref
  1165.   \setbox\n@otebox=\hbox\bgroup\locx@skip=\x@skip }%
  1166.  %\check
  1167.  %
  1168. \def\endstaff{\egroup
  1169.   \ifdim\n@skip<\wd\n@otebox \global\n@skip=\wd\n@otebox
  1170.   \fi
  1171.   \nobreak\raise\altportee\rlap{\unhbox\n@otebox}\nobreak}%
  1172.  %
  1173.  %\check
  1174.  %
  1175. \def\e@notes{\global\notes@open=0\relax\endinstrument
  1176. \ifdim\n@skip<\noteskip \showthe\noteskip\showthe\n@skip
  1177. \global\n@skip=\noteskip
  1178. \fi}%
  1179.  %
  1180.  %\check
  1181.  %
  1182. \def\shortstems{\def\stemfactor{4.00}}
  1183. \def\normalstems{\def\stemfactor{4.66}}
  1184. \normalstems
  1185.  % queue de note vers le bas
  1186. \def\p@tail{\global\advance\st@bot by -\stemfactor\interbeam\global\stem@skip=\z@
  1187. \minst@bot\pd@tail}%
  1188.  % queue de note vers le haut
  1189. \def\d@tail{\global\advance\st@top by \stemfactor\interbeam\maxst@top\pd@tail}%
  1190. \def\minst@bot{\global\advance\st@bot by -\altportee
  1191.   \ifdim\st@bot>2\Interligne \global\st@bot=2\Interligne\fi
  1192.   \global\advance\st@bot by \altportee}
  1193. \def\maxst@top{\global\advance\st@top by -\altportee
  1194.   \ifdim\st@top<2\Interligne \global\st@top=2\Interligne\fi
  1195.   \global\advance\st@top by \altportee}
  1196.  %
  1197.  %\check
  1198.  %\def\pd@tail{\global\advance\st@top by -\st@bot
  1199.  %  \ifdim\st@top>\p@\global\advance\st@bot by -\altportee
  1200.  %  \raise\st@bot\rlap{\kern\stem@skip\vrule height\st@top width \lthick}\fi
  1201.  %  \resetstem}%
  1202.  %\check
  1203. \def\pd@tail{\ifdim\st@top>\st@bot
  1204.    \global\advance\st@bot by -\altportee
  1205.    \global\advance\st@top by -\altportee
  1206.    \kern\stem@skip
  1207.    \vrule height\st@top depth -\st@bot width \lthick
  1208.    \kern-\stem@skip
  1209.    \kern-\lthick
  1210. \fi \resetstem}%
  1211.  %\check
  1212. \def\resetstem{\global\st@bot=99cm\global\st@top=-\st@bot}%
  1213.  %
  1214. \def\setstem{{\advance\y@i by -\n@raise  \advance\y@i by \altportee
  1215. \ifdim\st@bot>\y@i\global\st@bot=\y@i\fi
  1216. \ifdim\st@top<\y@i\global\st@top=\y@i\fi}}%
  1217.  %
  1218.  %\check
  1219.  %
  1220.  %  sequence de placement d'un caractere a une position dans la portee
  1221. \def\pl@note{\pl@base  \advance\y@i by \n@raise}%
  1222. \def\pl@base{\y@i=\n@i\internote}%
  1223.  %
  1224.  % lignes supplementaires pour \n@i (position)
  1225.  %
  1226. \newcount\h@lnlv
  1227. \newdimen\hlp@width
  1228. \newdimen\h@lineup
  1229. \newdimen\h@linedn
  1230.  %\def\h@linei{\raise\h@lnlv\internote
  1231.  %  \llap{\vdlthick width 1.6\hlp@width height \hlthick
  1232.  %  \kern -1.3\hlp@width}}%
  1233. \def\h@linei{\h@lineup=\h@lnlv\internote
  1234. \h@linedn=\h@lineup
  1235. \advance\h@lineup by \hlthick
  1236. \advance\h@linedn by -\hlthick
  1237. \kern -0.3\hlp@width
  1238. \vrule height \h@lineup depth -\h@linedn width 1.6\hlp@width
  1239. \kern -1.3\hlp@width}%
  1240.  %\check
  1241.  %
  1242. \def\h@linesqn{\h@lines{\qn@width}}%
  1243. \def\adv@locx@mqn{\advance\locx@skip by -\qn@width}%
  1244.  %
  1245. \def\h@lines#1{\hlp@width=#1\h@lnlv=0\relax
  1246.   \loop\advance\h@lnlv by -1\relax
  1247.   \ifnum\n@i<\h@lnlv\relax\advance\h@lnlv by -1\relax
  1248.   \ifnum\h@lnlv<-20\relax\showthe\h@lnlv\fi
  1249.   \h@linei\repeat
  1250. % \h@lnlv=8\relax
  1251. \h@lnlv=\stafflinesnb\relax
  1252. \advance\h@lnlv\stafflinesnb\relax
  1253. \advance\h@lnlv  -2\relax
  1254. \loop\advance\h@lnlv by 1\relax
  1255.   \ifnum\n@i>\h@lnlv\relax\advance\h@lnlv by 1\relax
  1256.   \ifnum\h@lnlv>30\relax\showthe\h@lnlv\fi
  1257.   \h@linei\repeat
  1258. }%
  1259.  %\check
  1260.  % *********** les symboles de notes ou assimiles ****************
  1261.  %
  1262.  % placement
  1263.  %
  1264. \newcount\inh@alt
  1265. \def\getn@i{\global\inh@alt=0\relax\xgetn@i}%
  1266.  %
  1267. \def\inhgetn@i{\global\inh@alt=1\relax\xgetn@i}%
  1268.  %
  1269. \def\xgetn@i#1{\n@i=9999\relax   % par defaut
  1270. \edef\t@ruc{\f@tok #1\noexpand\relax\af@tok}\ifcat a\t@ruc\relax
  1271. \getn@iletter{#1}%
  1272. \else\getn@inonlet{#1}% \ifcat pas lettre
  1273. \fi\global\n@raise=\z@}% %
  1274. \def\getn@inonlet#1{\edef\ss@uite{}\edef\s@uite{\s@tok #1{}\af@tok}%
  1275. \edef\alt@suite{}\ifcat 1\t@ruc\relax
  1276. \t@rucfig{#1}%   cas active character dont  chiffre
  1277. \else\t@rucexpcar{#1}%
  1278. \fi\alt@suite}% fi du \ifcat 1
  1279.  %\check
  1280.  % analysis of accidentals within collective note coding
  1281. \def\absoluteaccidentals{\def\Xna{\na}\def\Xsh{\sh}\def\Xfl{\fl}%
  1282. \def\Xdsh{\dsh}\def\Xdfl{\dfl}}%
  1283. \absoluteaccidentals
  1284.  %
  1285. \def\t@rucexpcar#1{\if ^\t@ruc\relax
  1286.         \edef\alt@suite{\ifnum
  1287.            \inh@alt=0\relax\noexpand\Xsh{\s@uite}\fi
  1288.         \noexpand\getn@i{\s@uite}}\fi
  1289.       \if _\t@ruc\relax
  1290.         \edef\alt@suite{\ifnum
  1291.            \inh@alt=0\relax\noexpand\Xfl{\s@uite}\fi
  1292.         \noexpand\getn@i{\s@uite}}\fi}%
  1293.  %\check
  1294. \def\t@rucfig#1{\if=\t@ruc\relax
  1295.         \edef\alt@suite{\ifnum
  1296.            \inh@alt=0\relax\noexpand\Xna{\s@uite}\fi
  1297.         \noexpand\getn@i{\s@uite}}\fi
  1298. \if*\t@ruc\relax
  1299.         \sk
  1300.         \edef\alt@suite{\noexpand\getn@i{\s@uite}}\fi
  1301. \if.\t@ruc\relax
  1302.         \edef\alt@suite{\ifnum
  1303.            \inh@alt=0\relax\noexpand\pt{\s@uite}\fi
  1304.         \noexpand\getn@i{\s@uite}}\fi
  1305. \if>\t@ruc\relax
  1306.         \edef\alt@suite{\ifnum
  1307.            \inh@alt=0\relax\noexpand\Xdsh{\s@uite}\fi
  1308.         \noexpand\getn@i{\s@uite}}\fi
  1309. \if<\t@ruc\relax
  1310.         \edef\alt@suite{\ifnum
  1311.            \inh@alt=0\relax\noexpand\Xdfl{\s@uite}\fi
  1312.         \noexpand\getn@i{\s@uite}}\fi
  1313. \if!\t@ruc\relax
  1314.         \transpose=\normaltranspose\relax
  1315.          \edef\alt@suite{\noexpand\getn@i{\s@uite}}\fi
  1316. \if'\t@ruc\relax
  1317.         \advance\transpose by 7\relax
  1318.         \edef\alt@suite{\noexpand\getn@i{\s@uite}}\fi
  1319. \if`\t@ruc\relax
  1320.         \advance\transpose by -7\relax
  1321.         \edef\alt@suite{\noexpand\getn@i{\s@uite}}%
  1322. \else \if -\t@ruc\relax\n@i=#1\relax\fi
  1323.       \if 1\t@ruc\relax\n@i=#1\relax\fi
  1324.       \if 2\t@ruc\relax\n@i=#1\relax\fi
  1325.       \if 3\t@ruc\relax\n@i=#1\relax\fi
  1326.       \if 4\t@ruc\relax\n@i=#1\relax\fi
  1327.       \if 5\t@ruc\relax\n@i=#1\relax\fi
  1328.       \if 6\t@ruc\relax\n@i=#1\relax\fi
  1329.       \if 7\t@ruc\relax\n@i=#1\relax\fi
  1330.       \if 8\t@ruc\relax\n@i=#1\relax\fi
  1331.       \if 9\t@ruc\relax\n@i=#1\relax\fi
  1332.       \if 0\t@ruc\relax\n@i=#1\relax\fi
  1333. \fi}%
  1334.  %\check
  1335.  %
  1336. \def\getn@iletter#1{\n@i=\expandafter`\t@ruc\relax
  1337. \ifnum\n@i >96\relax \advance\n@i by -101\relax % ramener au E (position
  1338.  % zero en clef de sol, ut@ref=0)
  1339. \else\advance\n@i by -83\relax % ramener au S= E + 14
  1340. \fi
  1341. \advance\n@i by \ut@ref\relax
  1342. \advance\n@i by \ut@ref\relax
  1343. \advance\n@i by \transpose\relax
  1344. \edef\s@uite{\s@tok #1{}\af@tok}\edef\ss@uite{\noexpand\n@fon{\s@uite}}}%
  1345.  %\check
  1346.  %
  1347. \def\pt@raise{\ifodd\n@i\relax\pt@up=-0.1\Interligne\else\pt@up
  1348. =0.3\Interligne\fi
  1349. \advance\pt@up by -\n@raise\raise\pt@up}%
  1350.  %
  1351.  %
  1352. \def\lcharnote#1#2{\getn@i{#1}\pl@llap{#2}}%
  1353.  %
  1354. \def\bigaccid{\def\small@test{\noteskip>-1\p@}}%
  1355. \def\smallaccid{\def\small@test{\noteskip>9999\p@}}%
  1356. \def\varaccid{\def\small@test{\noteskip>1.9\qn@width}}%
  1357. \def\k@eiqdskip{\kern 0.8\qd@skip}
  1358. \def\k@meiqdskip{\kern -0.8\qd@skip}
  1359.  %
  1360. \varaccid % accidents de taille variable
  1361.  %\check
  1362. \def\lfl#1{\getn@i{#1}\global\n@raise=\fl@raise
  1363.   \pl@llap{\ifdim\small@test\f@lat\else\smallf@lat\fi\k@eiqdskip}}%
  1364.  %\check
  1365. \def\ldfl#1{\getn@i{#1}\global\n@raise=\fl@raise
  1366.   \pl@llap{\ifdim\small@test\df@lat\else\smalldf@lt\fi\k@eiqdskip}}%
  1367.  %\check
  1368. \def\lsh#1{\getn@i{#1}\global\n@raise=\sh@raise
  1369.   \pl@llap{\ifdim\small@test\s@harp\else\smalls@harp\fi\k@eiqdskip}}%
  1370. \def\ldsh#1{\getn@i{#1}\global\n@raise=\z@
  1371.   \pl@llap{\ifdim\small@test\ds@harp\else\smallds@harp\fi\k@eiqdskip}}%
  1372.  %\check
  1373. \def\lna#1{\getn@i{#1}\global\n@raise=\na@raise
  1374.   \pl@llap{\ifdim\small@test\n@at\else\smalln@at\fi\k@eiqdskip}}%
  1375.  %\check
  1376. \def\pl@llap{\pl@note\raise\y@i\llap}%
  1377.  %**************** notes (sans queue) *******************
  1378.  %
  1379. \def\xcharnote#1#2#3{\getn@i{#2}\pl@base\raise\y@i\hbox to #1{#3\hss}}%
  1380.  %\check
  1381.  %
  1382. \def\raise@note{\advance\locx@skip by\noteskip\raise\y@i\hbox to \noteskip}%
  1383.  %
  1384.  % rondes sous diverses formes
  1385.  %
  1386.  % ronde decalee a gauche (sans avance)
  1387. \def\lw#1{\kern -\wd@skip\zw{#1}\kern \wd@skip}%
  1388.  %
  1389.  % ronde decalee a droite (sans avance)
  1390. \def\rw#1{\kern \wd@skip\zw{#1}\kern -\wd@skip}%
  1391.  %\check
  1392.  % ronde sans avance
  1393. \def\zw#1{\getn@i{#1}\def\n@fon{\zw}\def\n@sym{\w@h}\g@zw}%
  1394. \def\zwp#1{\getn@i{#1}\def\n@fon{\zwp}\def\n@sym{\w@hp}\g@zw}%
  1395. \def\zwpp#1{\getn@i{#1}\def\n@fon{\zwpp}\def\n@sym{\w@hpp}\g@zw}%
  1396. \def\zwppp#1{\getn@i{#1}\def\n@fon{\zwppp}\def\n@sym{\w@hppp}\g@zw}%
  1397. \def\g@zw{\advancefalse\g@w}%
  1398.  %\check
  1399.  %
  1400. \def\phpause{\hbox to \noteskip{\vrule width
  1401.  1.2\qn@width height \internote\hss}}%
  1402. \def\pause{\hbox{\raise 5\internote\phpause}}%
  1403. \def\hpause{\hbox{\raise 4\internote\phpause}}%
  1404. \def\demisoupir{\hbox to \noteskip{\d@soup\hss}%
  1405. \advance\locx@skip by \noteskip}%
  1406. \def\qp{\hbox to \noteskip{\s@oupir\hss}\advance\locx@skip by \noteskip}%
  1407. \def\soupir{\qp}%
  1408. \def\dsoupir{\demisoupir}%
  1409.  % quart de soupir
  1410. \def\qs{\hbox to \noteskip{\q@soup\hss}%
  1411. \advance\locx@skip by \noteskip}%
  1412. \def\qsoupir{\qs}%
  1413. \def\quartsoupir{\qs}%
  1414.  % huitieme de soupir
  1415. \def\hs{\hbox to \noteskip{\h@soup\hss}%
  1416. \advance\locx@skip by \noteskip}%
  1417. \def\hsoupir{\hs}%
  1418. \def\huitsoupir{\hs}%
  1419.  % seizieme de soupir
  1420. \def\qqs{\hbox to \noteskip{\s@soup\hss}%
  1421. \advance\locx@skip by \noteskip}%
  1422. \def\seizsoupir{\qqs}%
  1423.  %\check
  1424. \def\pl@noteq{\pl@note  \setstem
  1425.   \ifdim\noteskip>\z@
  1426.     \ifdim\st@bot<29cm
  1427.       \s@tem
  1428.     \fi
  1429.   \fi
  1430. }%
  1431.  %
  1432. \def\Ped{{\cmsy P\kern -1\p@\it ed.}}%
  1433. \def\PED{\rlap{\zcharnote{-5}{\kern -2\p@\Ped}}}%
  1434. \def\DEP{\rlap{\zcharnote{-7}{\kern 0.5\noteskip\kern -4\p@\moyen *}}}%
  1435.  %\check
  1436. \def\pl#1{\zcharnote{#1}{\raise 2\p@ \rlap{\ttyeight +}}}%
  1437. \def\pointdorgue#1{\zcharnote{#1}{\raise \Interligne\p@orgue}}%
  1438. \def\pointdurgue#1{\zcharnote{#1}{\raise-\Interligne\p@urgue}}%
  1439. \def\ntrille#1#2{\zcharnote{#1}{\trille{#2\elemskip}}}%
  1440. \def\nTrille#1#2{\zcharnote{#1}{\Trille{#2\elemskip}}}%
  1441. \def\xtrille#1#2{\zcharnote{#1}{\trille{#2}}}%
  1442. \def\xTrille#1#2{\zcharnote{#1}{\Trille{#2}}}%
  1443.  %
  1444. \def\pt#1{\inhgetn@i{#1}\def\n@fon{\pt}\def\n@sym{\z@p}\g@pt}
  1445. \def\ppt#1{\inhgetn@i{#1}\def\n@fon{\ppt}\def\n@sym{\z@pp}\g@pt}
  1446. \def\pppt#1{\inhgetn@i{#1}\def\n@fon{\pppt}\def\n@sym{\z@ppp}\g@pt}
  1447. \def\g@pt{\n@raiseq \pl@note\raise\y@i\rlap{\n@sym}\fi}%
  1448.  %
  1449. \def\n@raiseq{\global\n@raise=\qu@raise\ifnum\n@i<100\relax}
  1450.  %
  1451.  %\check
  1452.  %
  1453.  % blanche sans queue decalee a gauche
  1454.  % blanche pointee sans queue
  1455.  % blanche decalee a gauche
  1456. \def\lh#1{\kern -\hd@skip\zh{#1}\kern \hd@skip}%
  1457.  % blanche decalee a droite sans queue
  1458. \def\rh#1{\kern \hd@skip\zh{#1}\kern -\hd@skip}%
  1459.  % blanche sans queue ni avance
  1460. \def\zh#1{\getn@i{#1}\def\n@fon{\zh}\def\n@sym{\h@a}\g@zh}
  1461. \def\zhp#1{\getn@i{#1}\def\n@fon{\zhp}\def\n@sym{\h@ap}\g@zh}
  1462. \def\zhpp#1{\getn@i{#1}\def\n@fon{\zhpp}\def\n@sym{\h@app}\g@zh}
  1463. \def\zhppp#1{\getn@i{#1}\def\n@fon{\zhppp}\def\n@sym{\h@appp}\g@zh}
  1464. \def\g@zh{\global\n@raise=\ha@raise\global\n@width=\hn@width\g@z}%
  1465. \def\g@z{\ifnum\n@i<100\relax
  1466.   \h@lines{\n@width}\pl@note\setstem\rlap@symss\fi}%
  1467.  %
  1468.  % noires sans queues
  1469.  %
  1470. \def\zq#1{\getn@i{#1}\def\n@fon{\zq}\def\n@sym{\q@u}\g@zq}
  1471. \def\zqp#1{\getn@i{#1}\def\n@fon{\zqp}\def\n@sym{\q@up}\g@zq}
  1472. \def\zqpp#1{\getn@i{#1}\def\n@fon{\zqpp}\def\n@sym{\q@upp}\g@zq}
  1473. \def\zqppp#1{\getn@i{#1}\def\n@fon{\zqppp}\def\n@sym{\q@uppp}\g@zq}
  1474. \def\g@zq{\global\n@raise=\qu@raise\global\n@width=\qn@width\g@z}%
  1475.  %
  1476.  %\check
  1477. \def\rq@#1{\kern \qd@skip\zq{#1}\kern -\qd@skip}%
  1478. \def\lq@#1{\kern -\qd@skip\zq{#1}\kern \qd@skip}%
  1479.  % *********************** notes avec queue **********************
  1480.  %
  1481.  %\check
  1482. \def\qu{\advancetrue\qu@z}%
  1483. \def\qup{\advancetrue\qup@z}%
  1484. \def\qupp{\advancetrue\qupp@z}%
  1485. \def\quppp{\advancetrue\quppp@z}%
  1486. \def\qu@z#1{\getn@i{#1}\def\n@fon{\qu}\def\n@sym{\q@u}\g@qu}%
  1487. \def\qup@z#1{\getn@i{#1}\def\n@fon{\qup}\def\n@sym{\q@up}\g@qu}%
  1488. \def\qupp@z#1{\getn@i{#1}\def\n@fon{\qupp}\def\n@sym{\q@upp}\g@qu}%
  1489. \def\quppp@z#1{\getn@i{#1}\def\n@fon{\quppp}\def\n@sym{\q@uppp}\g@qu}%
  1490.  %\check
  1491. \def\g@qu{\n@raiseq
  1492.   \global\stem@skip=\qd@skip\def\s@tem{\d@tail}\g@qbh@\fi}%
  1493.  %
  1494. \def\q@up{\hbox to \qn@width{\q@u\hss}\P@t}%
  1495. \def\q@upp{\hbox to \qn@width{\q@u\hss}\PP@t}%
  1496. \def\q@uppp{\hbox to \qn@width{\q@u\hss}\PPP@t}%
  1497. \def\h@ap{\hbox to \hn@width{\h@a\hss}\P@t}%
  1498. \def\h@app{\hbox to \hn@width{\h@a\hss}\PP@t}%
  1499. \def\h@appp{\hbox to \hn@width{\h@a\hss}\PPP@t}%
  1500. \def\w@hp{\hbox to \wn@width{\w@h\hss}\P@t}%
  1501. \def\w@hpp{\hbox to \wn@width{\w@h\hss}\PP@t}%
  1502. \def\w@hppp{\hbox to \wn@width{\w@h\hss}\PPP@t}%
  1503.  %
  1504. \def\z@p{\kern \qn@width\P@t}\def\z@pp{\kern \qn@width\PP@t}%
  1505. \def\z@ppp{\kern \qn@width \PPP@t}%
  1506.  %\check
  1507. \def\rqu#1{\getn@i{#1}\def\n@fon{\qu}\def\n@sym{\kern \qd@skip\q@u}%
  1508.   \n@raiseq
  1509.   \kern \qd@skip  \h@linesqn\kern -\qd@skip
  1510.   \global\stem@skip=\qd@skip\def\s@tem{\d@tail}\pl@symss\fi}%
  1511.  %\check
  1512.  % noire queue en haut sans avance
  1513. \def\zqu{\advancefalse\qu@z}%
  1514. \def\zqup{\advancefalse\qup@z}%
  1515. \def\zqupp{\advancefalse\qupp@z}%
  1516. \def\zquppp{\advancefalse\quppp@z}%
  1517.  %
  1518.  % espace vide d'une note
  1519. \def\off#1{\advance\locx@skip by #1\kern #1}%
  1520. \def\sk{\off\noteskip}%
  1521. \def\qsk{\off\qn@width}%
  1522. \def\hqsk{\off{0.5\qn@width}}%
  1523. \def\hsk{\off\hn@width}%
  1524.  \def\offs@t#1{\off{-\s@o@}#1\off\s@o@}
  1525. \def\loffset#1{\edef\s@o@{#1\qn@width}\offs@t}
  1526. \def\roffset#1{\edef\s@o@{-#1\qn@width}\offs@t}
  1527. \def\roff{\roffset\@ne}
  1528. \def\loff{\loffset\@ne}
  1529. %\check
  1530. \def\lqu#1{\kern -\qd@skip\zqu{#1}\kern \qd@skip}%
  1531.  %\check
  1532.  % noires queue en base
  1533. \def\ql{\advancetrue\ql@z}%
  1534. \def\qlp{\advancetrue\qlp@z}%
  1535. \def\qlpp{\advancetrue\qlpp@z}%
  1536. \def\qlppp{\advancetrue\qlppp@z}%
  1537. \def\ql@z#1{\getn@i{#1}\def\n@fon{\ql}\def\n@sym{\q@u}\g@ql}%
  1538. \def\qlp@z#1{\getn@i{#1}\def\n@fon{\qlp}\def\n@sym{\q@up}\g@ql}%
  1539. \def\qlpp@z#1{\getn@i{#1}\def\n@fon{\qlpp}\def\n@sym{\q@upp}\g@ql}%
  1540. \def\qlppp@z#1{\getn@i{#1}\def\n@fon{\qlppp}\def\n@sym{\q@uppp}\g@ql}%
  1541. \def\g@ql{\n@raiseq
  1542.   \def\s@tem{\p@tail}\g@qbh@\fi}%
  1543.  %
  1544.  % la meme sans avance
  1545. \def\zql{\advancefalse\ql@z}%
  1546. \def\zqlp{\advancefalse\qlp@z}%
  1547. \def\zqlpp{\advancefalse\qlpp@z}%
  1548. \def\zqlppp#1{\advancefalse\qlppp@z}%
  1549.  %\check
  1550.  % decalees a gauche et a droite
  1551. \def\lql#1{\kern -\qd@skip\zql{#1}\kern \qd@skip}%
  1552. \def\rql#1{\kern \qd@skip\zql{#1}\kern -\qd@skip}%
  1553.  %
  1554.  % croches, doubles croches, triples croches, quadruple croches queue en
  1555.  % haut et en bas
  1556.  %
  1557. \def\clp{\advancetrue\mclp1}\def\cup{\advancetrue\mcup1}%
  1558. \def\clpp{\advancetrue\mclpp1}\def\cupp{\advancetrue\mcupp1}%
  1559. \def\clppp{\advancetrue\mclppp1}\def\cuppp{\advancetrue\mcuppp1}%
  1560.  %
  1561. \def\zclp{\advancefalse\mclp1}\def\zcup{\advancefalse\mcup1}%
  1562. \def\zclpp{\advancefalse\mclpp1}\def\zcupp{\advancefalse\mcupp1}%
  1563. \def\zclppp{\advancefalse\mclppp1}\def\zcuppp{\advancefalse\mcuppp1}%
  1564.  %
  1565. \def\cu{\advancetrue\mcu1}\def\ccu{\advancetrue\mcu2}
  1566. \def\cccu{\advancetrue\mcu3}\def\ccccu{\advancetrue\mcu4}%
  1567. \def\cl{\advancetrue\mcl1}\def\ccl{\advancetrue\mcl2}
  1568. \def\cccl{\advancetrue\mcl3}\def\ccccl{\advancetrue\mcl4}%
  1569.  %
  1570. \def\zcu{\advancefalse\mcu1}\def\zccu{\advancefalse\mcu2}%
  1571. \def\zcccu{\advancefalse\mcu3}\def\zccccu{\advancefalse\mcu4}%
  1572. \def\zcl{\advancefalse\mcl1}\def\zccl{\advancefalse\mcl2}%
  1573. \def\zcccl{\advancefalse\mcl3}\def\zccccl{\advancefalse\mcl4}%
  1574.  %
  1575. \def\mcu#1#2{\getn@i{#2}\def\n@sym{\q@u}%
  1576. \edef\n@fon{\noexpand\mcu #1}\g@cu{#1}}
  1577. \def\mcup#1#2{\getn@i{#2}\def\n@sym{\q@up}%
  1578. \edef\n@fon{\noexpand\mcup #1}\g@cu{#1}}
  1579. \def\mcupp#1#2{\getn@i{#2}\def\n@sym{\q@upp}%
  1580. \edef\n@fon{\noexpand\mcupp #1}\g@cu{#1}}
  1581. \def\mcuppp#1#2{\getn@i{#2}\def\n@sym{\q@uppp}%
  1582. \edef\n@fon{\noexpand\mcupp #1}\g@cu{#1}}
  1583. \def\g@cu#1{\n@raiseq
  1584.   \h@linesqn\global\stem@skip=\qd@skip
  1585.   \def\s@tem{\d@cr#1}\pl@symssq\fi}%
  1586. \def\mcl#1#2{\getn@i{#2}\def\n@sym{\q@u}%
  1587. \edef\n@fon{\noexpand\mcl #1}\g@cl{#1}}
  1588. \def\mclp#1#2{\getn@i{#2}\def\n@sym{\q@up}%
  1589. \edef\n@fon{\noexpand\mclp #1}\g@cl{#1}}
  1590. \def\mclpp#1#2{\getn@i{#2}\def\n@sym{\q@upp}%
  1591. \edef\n@fon{\noexpand\mclpp #1}\g@cl{#1}}
  1592. \def\mclppp#1#2{\getn@i{#2}\def\n@sym{\q@uppp}%
  1593. \edef\n@fon{\noexpand\mclppp #1}\g@cl{#1}}
  1594. \def\g@cl#1{\n@raiseq
  1595.   \h@linesqn\def\s@tem{\p@cr#1}\pl@symssq\fi}%
  1596.  %
  1597.  % ronde
  1598. \def\wh#1{\getn@i{#1}\def\n@fon{\wh}\def\n@sym{\w@h}\g@wh}%
  1599. \def\whp#1{\getn@i{#1}\def\n@fon{\whp}\def\n@sym{\w@hp}\g@wh}%
  1600. \def\whpp#1{\getn@i{#1}\def\n@fon{\whpp}\def\n@sym{\w@hpp}\g@wh}%
  1601. \def\whppp#1{\getn@i{#1}\def\n@fon{\whppp}\def\n@sym{\w@hppp}\g@wh}%
  1602. \def\g@wh{\advancetrue\g@w}%
  1603. \def\g@w{\global\n@raise=\wh@raise\ifnum\n@i<100\relax
  1604.   \h@lines{\wn@width}\def\s@tem{\resetstem}\pl@symssq\fi}%
  1605.  %\check
  1606. \def\zwh#1{\getn@i{#1}\def\n@fon{\wh}\def\n@sym{\w@h}\rlap{\g@wh}}%
  1607.  %
  1608.  % blanche avec queue
  1609. \def\ha{\hu}%
  1610. \def\hu#1{\getn@i{#1}\def\n@fon{\hu}\def\n@sym{\h@a}\g@hu}%
  1611. \def\hup#1{\getn@i{#1}\def\n@fon{\hup}\def\n@sym{\h@ap}\g@hu}%
  1612. \def\hupp#1{\getn@i{#1}\def\n@fon{\hupp}\def\n@sym{\h@app}\g@hu}%
  1613. \def\huppp#1{\getn@i{#1}\def\n@fon{\huppp}\def\n@sym{\h@appp}\g@hu}%
  1614. \def\g@hu{\advancetrue\g@huz}%
  1615. \def\g@huz{\global\n@raise=\ha@raise\ifnum\n@i<100\relax
  1616.  \h@lines{\hn@width}\global\stem@skip=\hd@skip
  1617.  \def\s@tem{\d@tail}\pl@symssq\fi}%
  1618.  %
  1619.  %\check
  1620. \def\rhu#1{\getn@i{#1}\def\n@fon{\hu}\global\n@raise=\ha@raise
  1621. \def\n@sym{\kern \hd@skip\h@a}%
  1622. \ifnum\n@i<100\relax
  1623.   \kern \hd@skip
  1624.   \h@lines{\hn@width}\kern -\hd@skip
  1625.   \global\stem@skip=\hd@skip\def\s@tem{\d@tail}\pl@symss\fi}%
  1626.  %\check
  1627.  % blanche avec queue sans avance
  1628. \def\zhu#1{\getn@i{#1}\def\n@fon{\hu}\def\n@sym{\h@a}\g@zhu}%
  1629. \def\zhup#1{\getn@i{#1}\def\n@fon{\hup}\def\n@sym{\h@ap}\g@zhu}%
  1630. \def\zhupp#1{\getn@i{#1}\def\n@fon{\hupp}\def\n@sym{\h@app}\g@zhu}%
  1631. \def\zhuppp#1{\getn@i{#1}\def\n@fon{\huppp}\def\n@sym{\h@appp}\g@zhu}%
  1632. \def\g@zhu{\advancefalse\g@huz}%
  1633.  %\check
  1634. \def\lhu#1{\kern -\hn@width\zhu{#1}\kern \hn@width}%
  1635.  %
  1636.  %
  1637.  % blanches queue en bas
  1638. \def\hl#1{\getn@i{#1}\def\n@fon{\hl}\def\n@sym{\h@a}\g@hl}%
  1639. \def\hlp#1{\getn@i{#1}\def\n@fon{\hlp}\def\n@sym{\h@ap}\g@hl}%
  1640. \def\hlpp#1{\getn@i{#1}\def\n@fon{\hlpp}\def\n@sym{\h@app}\g@hl}%
  1641. \def\hlppp#1{\getn@i{#1}\def\n@fon{\hlppp}\def\n@sym{\h@appp}\g@hl}%
  1642. \def\g@hl{\advancetrue\g@hlz}%
  1643. \def\g@hlz{\global\n@raise=\ha@raise\ifnum\n@i<100\relax
  1644.   \h@lines{\hn@width}\def\s@tem{\p@tail}\pl@symssq\fi}%
  1645.  %\check
  1646. \def\zhl#1{\getn@i{#1}\def\n@fon{\hl}\def\n@sym{\h@a}\rlap{\g@zhl}}%
  1647. \def\zhlp#1{\getn@i{#1}\def\n@fon{\hlp}\def\n@sym{\h@ap}\rlap{\g@zhl}}%
  1648. \def\zhlpp#1{\getn@i{#1}\def\n@fon{\hlpp}\def\n@sym{\h@app}\rlap{\g@zhl}}%
  1649. \def\zhlppp#1{\getn@i{#1}\def\n@fon{\hlppp}\def\n@sym{\h@appp}\rlap{\g@zhl}}%
  1650. \def\g@zhl{\advancefalse\g@hlz}%
  1651.  %\check
  1652. \def\rhl#1{\kern \hd@skip\zhl{#1}\kern -\hd@skip}%
  1653. \def\lhl#1{\kern -\hn@width\zhl{#1}\kern \hn@width}%
  1654.  %\check
  1655.  %**************** initialisation de poutres ******************
  1656.  % \ibu{0<numero<10}{altitude~note}{pente de -9 a +9}
  1657.  % \ibl{0<numero<10}{altitude~note}{pente de -9 a +9}
  1658.  %
  1659. \def\selectpoutre#1{{\n@i=#1\relax
  1660.   \ifnum\n@i<0\relax\n@i=29\relax\fi
  1661.   \advance\n@i by 1\relax
  1662. \xdef\b@x{\csname b@x\romannumeral\n@i\endcsname}%
  1663. \xdef\b@z{\csname b@z\romannumeral\n@i\endcsname}%
  1664. \xdef\bb@x{\csname bb@x\romannumeral\n@i\endcsname}%
  1665. \xdef\bb@z{\csname bb@z\romannumeral\n@i\endcsname}%
  1666. \xdef\bbb@x{\csname bbb@x\romannumeral\n@i\endcsname}%
  1667. \xdef\bbb@z{\csname bbb@z\romannumeral\n@i\endcsname}%
  1668. \xdef\bbbb@x{\csname bbbb@x\romannumeral\n@i\endcsname}%
  1669. \xdef\bbbb@z{\csname bbbb@z\romannumeral\n@i\endcsname}%
  1670. \xdef\bbbbb@x{\csname bbbbb@x\romannumeral\n@i\endcsname}%
  1671. \xdef\bbbbb@z{\csname bbbbb@z\romannumeral\n@i\endcsname}%
  1672. \xdef\b@n{\csname b@n\romannumeral\n@i\endcsname}%
  1673. \xdef\b@p{\csname b@p\romannumeral\n@i\endcsname}}\s@lopdefs}%
  1674.  % fin selectpoutre
  1675.  %
  1676. \def\ibu#1{\selectpoutre{#1}\i@bu}%
  1677. \def\i@bu#1#2{\ifnum\b@n=0\relax\else\t@bu\fi
  1678.   \global\b@n=-1\relax
  1679.   \global\b@x=\locx@skip
  1680.   \global\advance\b@x by \qd@skip\inhgetn@i{#1}\pl@base
  1681.   \global\b@z=\y@i\global\advance\b@z by\altportee\global\b@p=#2\relax
  1682.   \global\advance\b@z by 4.333\interbeam}%
  1683.  %
  1684. \def\ibl#1{\selectpoutre{#1}\i@bl}%
  1685. \def\i@bl#1#2{\ifnum\b@n=0\relax\else\t@bl\fi
  1686.   \global\b@n=1\relax
  1687.   \global\b@x=\locx@skip\inhgetn@i{#1}\pl@base
  1688.   \global\b@z=\y@i\global\advance\b@z by \altportee\global\b@p=#2\relax
  1689.   \global\advance\b@z by -4.333\interbeam}%
  1690.  %\check
  1691. \def\ibbu#1{\selectpoutre{#1}\i@bbu}%
  1692. \def\ibbl#1{\selectpoutre{#1}\i@bbl}%
  1693. \def\i@bbu#1#2{\ifnum\b@n=0\relax\i@bu{#1}{#2}\relax\global\advance\b@z by
  1694.  \interbeam\fi\n@bbu\relax}%
  1695. \def\i@bbl#1#2{\ifnum\b@n=0\relax\i@bl{#1}{#2}\relax\global\advance\b@z by
  1696.  -\interbeam\fi\n@bbl\relax}%
  1697. \def\nbbu#1{\selectpoutre{#1}\ifnum\b@n>-2\relax\ifnum\b@n<2\relax\n@bbu\fi
  1698. \fi}%
  1699. \def\nbbl#1{\selectpoutre{#1}\ifnum\b@n>-2\relax\ifnum\b@n<2\relax\n@bbl\fi
  1700. \fi}%
  1701. \def\n@bbu{\gl@au{\b@n}\global\bb@z=\b@z
  1702.  \ifnum\b@n<0\relax\global\advance\bb@z by -\interbeam
  1703.  \else \global\advance\bb@z by \interbeam
  1704.                          \fi
  1705.  {\advance\locx@skip by \qd@skip \global\bb@x=\locx@skip
  1706.   \advance\locx@skip by -\b@x
  1707.   \global\advance\bb@z by \s@lope\locx@skip }}%
  1708.  %
  1709. \def\n@bbl{\gl@au{\b@n}\global\bb@x=\locx@skip
  1710.   \global\advance\bb@x by \lthick
  1711.  \global\bb@z=\b@z\ifnum\b@n<0\relax\global\advance\bb@z by -\interbeam
  1712.  \else \global\advance\bb@z by \interbeam \fi
  1713.   {\advance\locx@skip by -\b@x
  1714. \global\advance\bb@z by \s@lope\locx@skip }}%
  1715.  %\check
  1716. \def\ibbbu#1{\selectpoutre{#1}\i@bbbu}%
  1717. \def\ibbbl#1{\selectpoutre{#1}\i@bbbl}%
  1718. \def\i@bbbu#1#2{\ifnum\b@n=0\relax\i@bbu{#1}{#2}%
  1719. \global\advance\b@z by \interbeam
  1720. \global\advance\bb@z by \interbeam
  1721. \fi\n@bbbu}%
  1722. \def\i@bbbl#1#2{\ifnum\b@n=0\relax\i@bbl{#1}{#2}%
  1723. \global\advance\b@z by -\interbeam
  1724. \global\advance\bb@z by -\interbeam
  1725. \fi\n@bbbl}%
  1726. \def\nbbbu#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbu\fi\ifnum\b@n
  1727. =1\relax\n@bbu\fi
  1728.  \ifnum\b@n=-2\relax\n@bbbu\fi\ifnum\b@n=2\relax\n@bbbu\fi
  1729. }%
  1730. \def\nbbbl#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbl\fi\ifnum\b@n
  1731. =1\relax\n@bbl\fi
  1732.  \ifnum\b@n=-2\relax\n@bbbl\fi\ifnum\b@n=2\relax\n@bbbl\fi
  1733. }%
  1734. \def\n@bbbu{\gl@au{\b@n}\global\bbb@z=\b@z
  1735.  \ifnum\b@n<0\relax\global\advance\bbb@z by -2\interbeam
  1736.  \else \global\advance\bbb@z by 2\interbeam
  1737.                          \fi
  1738.  {\advance\locx@skip by \qd@skip\global\bbb@x=\locx@skip
  1739.   \advance\locx@skip by -\b@x
  1740.   \global\advance\bbb@z by \s@lope\locx@skip }}%
  1741.  %
  1742. \def\n@bbbl{\gl@au{\b@n}\global\bbb@x=\locx@skip
  1743.   \global\advance\bbb@x by \lthick
  1744.  \global\bbb@z=\b@z\ifnum\b@n<0\relax\global\advance\bbb@z by
  1745.  -2\interbeam
  1746.  \else \global\advance\bbb@z by 2\interbeam
  1747.                          \fi
  1748.  {\advance\locx@skip by -\b@x\global\advance\bbb@z by \s@lope\locx@skip }}%
  1749.  %\check
  1750.  %
  1751. \def\ibbbbu#1{\selectpoutre{#1}\i@bbbbu}%
  1752. \def\ibbbbl#1{\selectpoutre{#1}\i@bbbbl}%
  1753. \def\i@bbbbu#1#2{\ifnum\b@n=0\relax\i@bbbu{#1}{#2}%
  1754. \global\advance\b@z by \interbeam
  1755. \global\advance\bb@z by \interbeam
  1756. \global\advance\bbb@z by \interbeam
  1757. \fi\n@bbbbu}%
  1758. \def\i@bbbbl#1#2{\ifnum\b@n=0\relax\i@bbbl{#1}{#2}%
  1759. \global\advance\b@z by -\interbeam
  1760. \global\advance\bb@z by -\interbeam
  1761. \global\advance\bbb@z by -\interbeam
  1762. \fi\n@bbbbl}%
  1763. \def\nbbbbu#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbu\fi\ifnum\b@n
  1764. =1\relax\n@bbu\fi
  1765.  \ifnum\b@n=-2\relax\n@bbbu\fi\ifnum\b@n=2\relax\n@bbbu\fi
  1766.  \ifnum\b@n=-3\relax\n@bbbbu\fi\ifnum\b@n=3\relax\n@bbbbu\fi
  1767. }%
  1768. \def\nbbbbl#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbl\fi\ifnum\b@n
  1769. =1\relax\n@bbl\fi
  1770.  \ifnum\b@n=-2\relax\n@bbbl\fi\ifnum\b@n=2\relax\n@bbbl\fi
  1771.  \ifnum\b@n=-3\relax\n@bbbbl\fi\ifnum\b@n=3\relax\n@bbbbl\fi  % *** correction ***
  1772. }%
  1773. \def\n@bbbbu{\gl@au{\b@n}\global\bbbb@z=\b@z
  1774.   \ifnum\b@n<0\relax\global\advance\bbbb@z by -3\interbeam
  1775.   \else \global\advance\bbbb@z by 3\interbeam
  1776.                          \fi
  1777.  {\advance\locx@skip by \qd@skip \global\bbbb@x=\locx@skip
  1778.   \advance\locx@skip by -\b@x
  1779.   \global\advance\bbbb@z by \s@lope\locx@skip }}%
  1780.  %
  1781. \def\n@bbbbl{\gl@au{\b@n}{\advance\locx@skip by \lthick
  1782.   \global\bbbb@x=\locx@skip}\global\bbbb@z=\b@z
  1783.   \ifnum\b@n<0\relax\global\advance\bbbb@z by -3\interbeam
  1784.   \else \global\advance\bbbb@z by 3\interbeam
  1785.                          \fi
  1786.  {\advance\locx@skip by -\b@x\global\advance\bbbb@z by \s@lope\locx@skip }}%
  1787.  %\check
  1788.  %
  1789.  %
  1790. \def\ibbbbbu#1{\selectpoutre{#1}\i@bbbbbu}%
  1791. \def\ibbbbbl#1{\selectpoutre{#1}\i@bbbbbl}%
  1792. \def\i@bbbbbu#1#2{\ifnum\b@n=0\relax\i@bbbbu{#1}{#2}%
  1793. \global\advance\b@z by \interbeam
  1794. \global\advance\bb@z by \interbeam
  1795. \global\advance\bbb@z by \interbeam
  1796. \global\advance\bbbb@z by \interbeam
  1797. \fi\n@bbbbbu}%
  1798. \def\i@bbbbbl#1#2{\ifnum\b@n=0\relax\i@bbbbl{#1}{#2}%
  1799. \global\advance\b@z by -\interbeam
  1800. \global\advance\bb@z by -\interbeam
  1801. \global\advance\bbb@z by -\interbeam
  1802. \global\advance\bbbb@z by -\interbeam
  1803. \fi\n@bbbbbl}%
  1804. \def\nbbbbbu#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbu\fi\ifnum\b@n
  1805. =1\relax\n@bbu\fi
  1806.  \ifnum\b@n=-2\relax\n@bbbu\fi\ifnum\b@n=2\relax\n@bbbu\fi
  1807.  \ifnum\b@n=-3\relax\n@bbbbu\fi\ifnum\b@n=3\relax\n@bbbbu\fi
  1808.  \ifnum\b@n=-4\relax\n@bbbbbu\fi\ifnum\b@n=4\relax\n@bbbbbu\fi
  1809. }%
  1810. \def\nbbbbbl#1{\selectpoutre{#1}\ifnum\b@n=-1\relax\n@bbl\fi\ifnum\b@n
  1811. =1\relax\n@bbl\fi
  1812.  \ifnum\b@n=-2\relax\n@bbbl\fi\ifnum\b@n=2\relax\n@bbbl\fi
  1813.  \ifnum\b@n=-3\relax\n@bbbbl\fi\ifnum\b@n=3\relax\n@bbbbl\fi  
  1814.  \ifnum\b@n=-4\relax\n@bbbbbl\fi\ifnum\b@n=4\relax\n@bbbbbl\fi
  1815. }%
  1816. \def\n@bbbbbu{\gl@au{\b@n}\global\bbbbb@z=\b@z
  1817.   \ifnum\b@n<0\relax\global\advance\bbbbb@z by -4\interbeam
  1818.   \else \global\advance\bbbbb@z by 4\interbeam
  1819.                          \fi
  1820.  {\advance\locx@skip by \qd@skip \global\bbbbb@x=\locx@skip
  1821.   \advance\locx@skip by -\b@x
  1822.   \global\advance\bbbbb@z by \s@lope\locx@skip }}%
  1823.  %
  1824. \def\n@bbbbbl{\gl@au{\b@n}{\advance\locx@skip by \lthick
  1825.   \global\bbbbb@x=\locx@skip}\global\bbbbb@z=\b@z
  1826.   \ifnum\b@n<0\relax\global\advance\bbbbb@z by -4\interbeam
  1827.   \else \global\advance\bbbbb@z by 4\interbeam
  1828.                          \fi
  1829.  {\advance\locx@skip by -\b@x\global\advance\bbbbb@z by \s@lope\locx@skip }}%
  1830.  %\check
  1831.  %
  1832.  % terminaison de toutes les poutres en suspens
  1833.  %
  1834.  %***** terminer une poutre superieure ****************
  1835.  %\check
  1836.  %
  1837. \def\tbu#1{\selectpoutre{#1}\t@bu}%
  1838. \def\tqh#1{\selectpoutre{#1}\t@qh}%
  1839. \def\tbbu#1{\selectpoutre{#1}\t@bbu}%
  1840. \def\tbbbu#1{\selectpoutre{#1}\t@bbbu}%
  1841. \def\tbbbbu#1{\selectpoutre{#1}\t@bbbbu}%
  1842. \def\tbbbbbu#1{\selectpoutre{#1}\t@bbbbbu}%
  1843.  %\check
  1844. \def\t@qh{\t@bu\qh@}%
  1845. \def\t@bu{\ifnum\b@n<-1\relax\t@bbu\fi
  1846. \ifnum\b@n>1\relax\t@bbu\fi
  1847. \y@i=\b@z
  1848. \advance\y@i by -\altportee
  1849. \y@ii=\locx@skip
  1850. \advance\y@ii by \qn@width
  1851. \advance\y@ii by -\b@x
  1852. \llap{\p@outre\hskip -\qn@width}%
  1853. \global\b@n=0\relax}%
  1854.  %
  1855.  %\check
  1856. \def\t@bbu{\ifnum\b@n<-2\relax\t@bbbu\fi
  1857.            \ifnum\b@n>2\relax\t@bbbu\fi
  1858. \ifnum\b@n=1\relax{\adv@locx@mqn\n@bbu}\fi
  1859. \ifnum\b@n=-1\relax{\adv@locx@mqn\n@bbu}\fi
  1860. \y@i=\bb@z\y@ii=-\bb@x\t@xbu}%
  1861.  %\check
  1862. \def\t@xbu{\advance\y@i by -\altportee
  1863. \advance\y@ii by \locx@skip \advance\y@ii by \qn@width
  1864. \llap{\p@outre\hskip -\qn@width}%
  1865. \ifnum\b@n>0\relax
  1866. \advance\y@i by \s@lope\y@ii\raise\y@i\rlap{\kern\qn@width
  1867. \kern -\lthick\vrule height \z@ depth 1.8\internote width \lthick}\fi
  1868. \gl@de{\b@n}}%
  1869.  %\check
  1870. \def\t@bbbu{\ifnum\b@n<-3\relax\t@bbbbu\fi
  1871.             \ifnum\b@n>3\relax\t@bbbbu\fi
  1872. \ifnum\b@n=2\relax{\adv@locx@mqn\n@bbbu}\fi
  1873. \ifnum\b@n=-2\relax{\adv@locx@mqn\n@bbbu}\fi
  1874. \y@i=\bbb@z\y@ii=-\bbb@x\t@xbu}%
  1875.  %
  1876.  %\check
  1877. \def\t@bbbbu{\ifnum\b@n<-4\relax\t@bbbbbu\fi
  1878.              \ifnum\b@n>4\relax\t@bbbbbu\fi
  1879. \ifnum\b@n=3\relax{\adv@locx@mqn\n@bbbbu}\fi
  1880. \ifnum\b@n=-3\relax{\adv@locx@mqn\n@bbbbu}\fi
  1881. \y@i=\bbbb@z\y@ii=-\bbbb@x\t@xbu}%
  1882.  %\check
  1883. \def\t@bbbbbu{\ifnum\b@n<-5\relax\showthe\b@n\global\b@n=-5\relax\fi
  1884. \ifnum\b@n>5\relax\showthe\b@n\global\b@n=5\relax\fi
  1885. \ifnum\b@n=4\relax{\adv@locx@mqn\n@bbbbbu}\fi
  1886. \ifnum\b@n=-4\relax{\adv@locx@mqn\n@bbbbbu}\fi
  1887. \y@i=\bbbbb@z\y@ii=-\bbbbb@x\t@xbu}%
  1888.  %***** terminer une poutre inferieure****************
  1889. \def\tbl#1{\selectpoutre{#1}\t@bl}%
  1890. \def\tqb#1{\selectpoutre{#1}\t@qb}%
  1891. \def\tbbl#1{\selectpoutre{#1}\t@bbl}%
  1892. \def\tbbbl#1{\selectpoutre{#1}\t@bbbl}%
  1893. \def\tbbbbl#1{\selectpoutre{#1}\t@bbbbl}%
  1894. \def\tbbbbbl#1{\selectpoutre{#1}\t@bbbbbl}%
  1895.  % provisoire
  1896. \def\t@qb{\t@bl\qb@}%
  1897. \def\t@bl{\relax
  1898. \ifnum\b@n<-1\relax\t@bbl\fi
  1899. \ifnum\b@n>1\relax\t@bbl\fi
  1900. \y@i=\b@z
  1901. \advance\y@i by -\altportee
  1902. \y@ii=\locx@skip
  1903. \advance\y@ii by \lthick
  1904. \advance\y@ii by -\b@x
  1905. \kern\lthick\llap{\p@outre}\kern -\lthick
  1906. \global\b@n=0\relax}%
  1907.  %\check
  1908.  %
  1909. \def\t@bbl{\relax
  1910. \ifnum\b@n<-2\relax\t@bbbl\fi
  1911. \ifnum\b@n>2\relax\t@bbbl\fi
  1912. \ifnum\b@n=1\relax{\adv@locx@mqn\n@bbl}\fi
  1913. \ifnum\b@n=-1\relax{\adv@locx@mqn\n@bbl}\fi
  1914. \y@i=\bb@z\y@ii=-\bb@x\t@xbl}%
  1915.  %
  1916. \def\t@xbl{\advance\y@i by -\altportee
  1917. \advance\y@ii by \locx@skip
  1918. \advance\y@ii by \lthick
  1919. \kern\lthick\llap{\p@outre}\kern-\lthick
  1920. \ifnum\b@n<0\relax\advance\y@i by \s@lope\y@ii
  1921. \raise\y@i\rlap{\vrule height \interbeam width \lthick}\fi
  1922. \gl@de{\b@n}}%
  1923.  %\check
  1924. \def\t@bbbl{\relax
  1925. \ifnum\b@n<-3\relax\t@bbbbl\fi
  1926. \ifnum\b@n>3\relax\t@bbbbl\fi
  1927. \ifnum\b@n=2\relax{\adv@locx@mqn\n@bbbl}\fi
  1928. \ifnum\b@n=-2\relax{\adv@locx@mqn\n@bbbl}\fi
  1929. \y@i=\bbb@z\y@ii=-\bbb@x\t@xbl}%
  1930.  %\check
  1931. \def\t@bbbbl{\relax
  1932. \ifnum\b@n<-4\relax\t@bbbbbl\fi
  1933. \ifnum\b@n>4\relax\t@bbbbbl\fi
  1934. \ifnum\b@n=3\relax{\adv@locx@mqn\n@bbbbl}\fi
  1935. \ifnum\b@n=-3\relax{\adv@locx@mqn\n@bbbbl}\fi
  1936. \y@i=\bbbb@z\y@ii=-\bbbb@x\t@xbl}%
  1937.  %\check
  1938. \def\t@bbbbbl{\relax
  1939. \ifnum\b@n<-5\relax\showthe\b@n\global\b@n=-5\relax\fi
  1940. \ifnum\b@n>5\relax\showthe\b@n\global\b@n=5\relax\fi
  1941. \ifnum\b@n=4\relax{\adv@locx@mqn\n@bbbbbl}\fi
  1942. \ifnum\b@n=-4\relax{\adv@locx@mqn\n@bbbbbl}\fi
  1943. \y@i=\bbbbb@z\y@ii=-\bbbbb@x\t@xbl}%
  1944.  %******************** notes accrchees aux poutres
  1945.  % ************************************
  1946.  %
  1947. \def\zqh#1{\selectpoutre{#1}\advancefalse\qh@}%
  1948. \def\zqb#1{\selectpoutre{#1}\advancefalse\qb@}%
  1949. \def\zqhp#1{\selectpoutre{#1}\advancefalse\qhp@}%
  1950. \def\zqbp#1{\selectpoutre{#1}\advancefalse\qbp@}%
  1951. \def\zqhpp#1{\selectpoutre{#1}\advancefalse\qhpp@}%
  1952. \def\zqbpp#1{\selectpoutre{#1}\advancefalse\qbpp@}%
  1953.  %
  1954. \def\qh#1{\selectpoutre{#1}\qh@}%
  1955. \def\hh#1{\selectpoutre{#1}\hh@}%
  1956. \def\qhp#1{\selectpoutre{#1}\qhp@}%
  1957. \def\qhpp#1{\selectpoutre{#1}\qhpp@}%
  1958. \def\qhppp#1{\selectpoutre{#1}\qhppp@}%
  1959. \def\qh@#1{\getn@i{#1}\def\n@fon{\qh@}\def\n@sym{\q@u}\g@qh@}% % position
  1960. \def\hh@#1{\getn@i{#1}\def\n@fon{\hh@}\def\n@sym{\h@a}\g@qh@}% % position
  1961. \def\qhp@#1{\getn@i{#1}\def\n@fon{\qhp@}\def\n@sym{\q@up}\g@qh@}% % position
  1962. \def\qhpp@#1{\getn@i{#1}\def\n@fon{\qhpp@}\def\n@sym{\q@upp}\g@qh@}% % position
  1963. \def\qhppp@#1{\getn@i{#1}\def\n@fon{\qhppp@}\def\n@sym{\q@uppp}\g@qh@}% %
  1964.  % position
  1965. \def\qb#1{\selectpoutre{#1}\qb@}%
  1966. \def\hb#1{\selectpoutre{#1}\hb@}%
  1967. \def\qbp#1{\selectpoutre{#1}\qbp@}%
  1968. \def\qbpp#1{\selectpoutre{#1}\qbpp@}%
  1969. \def\qbppp#1{\selectpoutre{#1}\qbppp@}%
  1970. \def\qb@#1{\getn@i{#1}\def\n@fon{\qb@}\def\n@sym{\q@u}\g@qb@} % #1 position
  1971. \def\hb@#1{\getn@i{#1}\def\n@fon{\hb@}\def\n@sym{\h@a}\g@qb@} % #1 position
  1972. \def\qbp@#1{\getn@i{#1}\def\n@fon{\qbp@}\def\n@sym{\q@up}\g@qb@} % #1 position
  1973. \def\qbpp@#1{\getn@i{#1}\def\n@fon{\qbpp@}\def\n@sym{\q@upp}\g@qb@} % #1
  1974.  % position
  1975. \def\qbppp@#1{\getn@i{#1}\def\n@fon{\qbppp@}\def\n@sym{\q@uppp}\g@qb@} % #1
  1976.  % position
  1977. \def\g@qb@{\n@raiseq
  1978.   \global\stem@skip=\z@\def\s@tem{\d@balk}\g@qbh@\fi}%
  1979.  %
  1980. \def\g@qh@{\n@raiseq
  1981.   \global\stem@skip=\qd@skip\def\s@tem{\d@balk}\g@qbh@\fi}%
  1982.  %
  1983. \def\g@qbh@{\h@linesqn\pl@symssq}%
  1984.  %
  1985. \def\pl@symss{\pl@noteq\raise@note{\n@sym\hss}\ss@uite}%
  1986. \def\pl@symssq{\ifadvance\pl@symss\else\plap@symss\fi\advancetrue}%
  1987.  %
  1988. \def\rlap@symss{\raise\y@i\rlap{\n@sym}\ss@uite}%
  1989. \def\plap@symss{\pl@noteq\rlap@symss}%
  1990.  %
  1991. \def\d@balk{%    % queue de note vers une poutre
  1992. \y@ii=\b@z                     % a augmenter avec la pente
  1993. \y@v=\locx@skip\advance\y@v by \stem@skip\advance\y@v by -\b@x
  1994. \advance\y@ii by \s@lope\y@v
  1995. \ifdim\y@ii>\st@top % la poutre est au-dessus
  1996.   \ifnum\b@n>0\relax\advance\y@ii by \b@n\interbeam
  1997.     \advance\y@ii by -\interbeam
  1998.   \fi\global\st@top=\y@ii  %  a mettre a jour avec la pente ulterieurement
  1999. \else
  2000.   \ifdim\y@ii<\st@bot
  2001.   \ifnum\b@n<0\relax\advance\y@ii by \b@n\interbeam
  2002.     \advance\y@ii by \interbeam
  2003.   \fi\global\st@bot=\y@ii
  2004. \fi\fi\pd@tail}%
  2005.  %
  2006.  %*********************************** notes sans avancement (accords)
  2007. \def\zha#1{{\noteskip=\z@\ha{#1}}}%
  2008.  %
  2009. \def\charnote{\xcharnote{\noteskip}}%
  2010. \def\zcharnote{\xcharnote{\z@}}%
  2011.  %\check
  2012.  %
  2013.  %************************* liaisons horizontales **************************
  2014.  % Tie Fixes.
  2015.  % I have rewritten several tie macros to eliminate those annoying gaps which
  2016.  % often appear. The new macros cause ties to be extended with leader, rather
  2017.  % than lines whose length has to be guessed. TeX cannot make multiple
  2018.  % horizontal lines with \leaders, so instead I use an \hbox containing
  2019.  % several short fragments of lines. Each line fragment is of length
  2020.  % \tenboxwidth, which is initially .75pt.
  2021.  % In order for the new ties to work properly, every horizontal space must be
  2022.  % recorded. I have had to amend some macros so that they record the space
  2023.  % which they produce.
  2024.  %
  2025. \newbox\@tenubox \newskip\@tenuskip \newdimen\tenboxwidth \tenboxwidth.75pt
  2026.  %
  2027.  % -macros to maintain a box of tie extenders which is used in the leaders
  2028. \global\setbox\@tenubox\hbox{\kern\tenboxwidth}
  2029. \def\@uptenubox{\global\setbox\@tenubox
  2030.   \hbox{\kern\tenboxwidth}\ten@loop
  2031.   \ifnum\t@s=0\relax\else\up@tenbox\fi
  2032.   \global\advance\n@l by 1\relax\repeat}%
  2033. \def\up@tenbox{\y@ii\t@z\advance\y@ii by \t@y
  2034.     \global\setbox\@tenubox\hbox{\unhbox\@tenubox
  2035.     \kern-\tenboxwidth\vrule width\tenboxwidth height\y@ii depth-\t@z}}
  2036.  %
  2037.  % -This macro makes the leaders. #1 is the amount of skip. It is extended
  2038.  %  by \tenboxwidth on each side in order to get the lines to join up.
  2039. \def\@tenleader#1{\@tenuskip=#1\advance\@tenuskip by2\tenboxwidth\relax
  2040. \nobreak\kern-\tenboxwidth\nobreak\cleaders\copy\@tenubox\hskip\@tenuskip
  2041. \kern-\tenboxwidth\nobreak}
  2042.  %
  2043. \def\selecttenue#1{{\n@i=#1\relax
  2044. \ifnum\n@i<0\relax\n@i=29\fi
  2045.   \advance\n@i by 1\relax
  2046. \xdef\t@x{\csname t@x\romannumeral\n@i\endcsname}%
  2047. \xdef\t@z{\csname t@z\romannumeral\n@i\endcsname}%
  2048. \xdef\t@p{\csname t@p\romannumeral\n@i\endcsname}%
  2049. \xdef\t@s{\csname t@s\romannumeral\n@i\endcsname}%
  2050. \xdef\t@w{\csname t@w\romannumeral\n@i\endcsname}}%
  2051. \ifnum\t@w=0\relax
  2052.   \global\t@y=1.2\p@
  2053. \else
  2054.   \global\t@y= 0.15\Interligne
  2055. \fi
  2056. }%   fin selecttenue
  2057.  %
  2058.  %\check
  2059.  % mise a jour marge inferieure et correction d'altitude de tenues
  2060.  %
  2061. \newdimen\bottom@adv
  2062. \def\advancebottom#1{\global\bottom@adv=#1\relax}%
  2063. \def\adv@bottom{\global\advance\staffbotmarg by \bottom@adv
  2064.   \ten@loop \global\advance\t@z by \bottom@adv\relax
  2065.     \global\advance\n@l by 1\relax
  2066.   \repeat   \@uptenubox
  2067.   \global\bottom@adv=\z@}%
  2068.  %
  2069.  %\check
  2070.  %
  2071. \def\lu@slur{\cmex\char"7A}\def\ru@slur{\cmex\char"7B}%
  2072. \def\ll@slur{\cmex\char"7C}\def\rl@slur{\cmex\char"7D}%
  2073. \setbox\n@otebox=\hbox{\lu@slur}\brace@w=\wd\n@otebox
  2074.  %
  2075. \def\leg@hrule{\leaders\hrule height \t@y\hfill}%
  2076.  %
  2077.  % complete slur of length #1 (up and down)
  2078. \def\up@leg{%    longueur y@ii
  2079. \hbox to \y@ii{\lu@slur\ifdim \y@ii>2\brace@w\leg@hrule
  2080. \else\hss\fi\ru@slur}}%
  2081.  %
  2082. \def\lo@leg{%    longueur y@ii
  2083. \hbox to \y@ii{\ll@slur\ifdim \y@ii>2\brace@w\leg@hrule
  2084. \else\hss\fi\rl@slur}}%
  2085.  %
  2086.  % slur termination of length #1 (up and down)
  2087. \def\up@rleg{%    longueur y@ii
  2088. \hbox to \y@ii{\ifdim \y@ii>\brace@w\leg@hrule
  2089. \else\hss\fi\ru@slur}}%
  2090.  %
  2091. \def\lo@rleg{%    longueur y@ii
  2092. \hbox to \y@ii{\ifdim \y@ii>\brace@w\leg@hrule
  2093. \else\hss\fi\rl@slur}}%
  2094.  %\check
  2095.  %
  2096.  % slur beginning (left) (up and down)
  2097. \def\up@les{%    longueur y@ii
  2098. \hbox to \y@ii{\lu@slur\ifdim \y@ii>\brace@w\leg@hrule
  2099. \else\hss\fi}}%
  2100.  %
  2101. \def\lo@les{%    longueur y@ii
  2102. \hbox to \y@ii{\ll@slur\ifdim \y@ii>\brace@w\leg@hrule
  2103. \else\hss\fi}}%
  2104.  %\check
  2105.  %
  2106.  % noter un debut de tenue
  2107.  %
  2108. \def\itenu#1{\selecttenue{#1}\i@tenu}%
  2109.  % \rtenu starts a 'tenuto' one note head on the right
  2110. \def\rtenu#1#2{\selecttenue{#1}\i@tenu{#2}\global\advance\t@x by \wn@width}%
  2111.  %
  2112. \def\check@tenvoid{\ifnum\t@s=0\relax\else\errmessage{Attemt to re-open an
  2113. opened slur/tie}\fi} 
  2114. \def\check@tenopen{\ifnum\t@s=0\errmessage{Attemt to close an
  2115. unopened slur/tie}\fi} 
  2116.  %
  2117. \def\i@tenu#1{\check@tenvoid\global\t@p=1\relax % sens=1
  2118.   \global\t@s=1\relax % etat en cours
  2119.   \global\t@x=\locx@skip
  2120.   \global\advance\t@x by \qd@skip
  2121.   \inhgetn@i{#1}\pl@base\global\t@z=\y@i\global\advance\t@z by\altportee
  2122.   \global\advance\t@z by 3.7\p@
  2123.   \global\t@y=1.2\p@
  2124.   \global\t@w=0\relax
  2125.   \up@tenbox}%
  2126.  %
  2127. \def\itenl#1{\selecttenue{#1}\i@tenl}%
  2128. \def\minternote{-\internote}%
  2129.  % \rtenl starts a 'tenuto' one note head on the right
  2130. \def\rtenl#1#2{\selecttenue{#1}\i@tenl{#2}\global\advance\t@x by \wn@width}%
  2131. \def\i@tenl#1{\check@tenvoid\global\t@p=-1\relax % sens= -1
  2132.   \global\t@s=1\relax % actif
  2133.   \global\t@x=\locx@skip
  2134.   \global\advance\t@x by \qd@skip
  2135.   \inhgetn@i{#1}\pl@base\global\t@z=\y@i\global\advance\t@z by \altportee
  2136.   \global\advance\t@z by -4.5\p@\relax
  2137.   \global\t@y=1.2\p@
  2138.   \global\t@w=0\relax
  2139.   \up@tenbox}%
  2140.  %\check
  2141. \def\tten#1{\selecttenue{#1}\t@ten}%
  2142. \def\tleg#1{\selecttenue{#1}\check@tenopen{\advance\locx@skip by
  2143.  1.5\qn@width\kern 1.5\qn@width\t@ten\kern -1.5\qn@width}}%
  2144.  
  2145. \def\liftslur#1{\selecttenue{#1}\l@iftslur}%
  2146. \def\l@iftslur#1{\global\advance\t@z by #1\relax}%
  2147.  %
  2148.  %\check
  2149.  %
  2150.  %********************** ponctuations speciales ****************************
  2151.  %
  2152. \def\breath{\raise 3\Interligne\hbox{\enorme'}}%
  2153. \def\uptext#1{\resetstem\raise 5\Interligne\rlap{#1}}%
  2154. \def\Uptext#1{\resetstem\raise 7\Interligne\rlap{#1}}%
  2155. \def\text@sp{\vrule width \z@ height 8.5\p@ depth 3.5\p@}
  2156. \def\f{{\ppff {f}}}
  2157. \def\ff{{\ppff {f}\kern -0.1ex{f}}}
  2158. \def\fff{{\ppff {f}\kern -0.1ex{f}\kern -0.1ex{f}}}
  2159. \def\ffff{{\ppff {f}\kern -0.1ex{f}\kern -0.1ex{f}\kern -0.1ex{f}}}
  2160. \def\m@idcomp{\y@v=\interportee\advance\y@v by 4\Interligne\divide\y@v by
  2161.  %%\def\m@idcomp{\y@v=\Interportee\divide\y@v by
  2162.  2\relax
  2163. \raise\y@v\vbox to \z@}%
  2164.  %
  2165. \def\midtwotext#1{{\m@idcomp
  2166. {\vss\hbox to \noteskip{\hss\text@sp #1\hss}\vss}}}%
  2167. \def\rmidtwotext#1{{\m@idcomp
  2168. {\vss\hbox to \noteskip{\text@sp #1\hss}\vss}}}%
  2169. \def\zmidtwotext#1{{\m@idcomp
  2170. {\vss\rlap{\text@sp #1}\vss}}}%
  2171. \def\lmidtwotext#1{{\m@idcomp
  2172. {\vss\hbox to \noteskip{\hss\text@sp #1}\vss}}}%
  2173.  %\check
  2174. \def\metron#1#2{{\shortstems\noteskip 10\p@ #1 1\ = #2}}%
  2175.  %\check
  2176.  %
  2177.  %**************************************************************************
  2178.  % definition standard, modifiables par l'usager
  2179.  %**************************************************************************
  2180.  %
  2181. \def\resetfacteurs{\stafftopmarg=\z@\staffbotmarg=\z@\nullthick=8\Internote
  2182.  %
  2183. \def\stafflinesnbi{5}%
  2184. \def\stafflinesnbii{5}%
  2185. \def\stafflinesnbiii{5}%
  2186. \def\stafflinesnbiv{5}%
  2187. \def\stafflinesnbv{5}%
  2188. \def\stafflinesnbvi{5}%
  2189.  %
  2190. \def\clefduti{\clefdutsymbol}%
  2191. \def\clefdutii{\clefdutsymbol}%
  2192. \def\clefdutiii{\clefdutsymbol}%
  2193. \def\clefdutiv{\clefdutsymbol}%
  2194. \def\clefdutv{\clefdutsymbol}%
  2195. \def\clefdutvi{\clefdutsymbol}%
  2196.  %
  2197. \def\clefdefai{\clefdefasymbol}%
  2198. \def\clefdefaii{\clefdefasymbol}%
  2199. \def\clefdefaiii{\clefdefasymbol}%
  2200. \def\clefdefaiv{\clefdefasymbol}%
  2201. \def\clefdefav{\clefdefasymbol}%
  2202. \def\clefdefavi{\clefdefasymbol}%
  2203.  %
  2204. \def\clefdesoli{\clefdesolsymbol}%
  2205. \def\clefdesolii{\clefdesolsymbol}%
  2206. \def\clefdesoliii{\clefdesolsymbol}%
  2207. \def\clefdesoliv{\clefdesolsymbol}%
  2208. \def\clefdesolv{\clefdesolsymbol}%
  2209. \def\clefdesolvi{\clefdesolsymbol}%
  2210.  %
  2211. \def\interfacteur{9}%
  2212. \def\bottomfacteur{3}%
  2213. \def\topfacteur{3}%
  2214. \elemskip=4\Internote
  2215. \def\gluemaxskip{0.1\line@width}%
  2216. \zglueskip=0pt plus \gluemaxskip minus .5pt%
  2217. \tempsskip=2pt  plus \gluemaxskip minus 2pt
  2218. }%
  2219. \resetfacteurs
  2220.  %\check
  2221. \def\normal{\ifdim\Interligne<\p@\computewidths\fi
  2222. \def\scalenoteskip{1.0}\elemskip=4\Internote
  2223. \def\notes{\vnotes 1.0\elemskip }%  double croches
  2224. \def\Notes{\vnotes 1.4\elemskip }%  croches
  2225. \def\NOtes{\vnotes 2.0\elemskip }%  croches pointees
  2226. \def\NOTes{\vnotes 2.8\elemskip }%  noires
  2227. \def\NOTEs{\vnotes 4.0\elemskip }%
  2228. \def\NOTES{\vnotes 5.6\elemskip }%
  2229. }%
  2230.  %
  2231. \ifx\large\undefined
  2232.   \def\large{\normal\elemskip=4.8\Internote}\fi
  2233.  %
  2234. \def\etroit{\normal
  2235. \def\Notes{\vnotes 1.3\elemskip }%  croches
  2236. \def\NOtes{\vnotes 1.8\elemskip }%  croches pointees
  2237. \def\NOTes{\vnotes 2.6\elemskip }%  noires
  2238. \def\NOTEs{\vnotes 3.6\elemskip }%
  2239. \def\NOTES{\vnotes 5.2\elemskip }%
  2240. }%
  2241.  %\check
  2242. \def\testseq{}%
  2243. \def\nspace{\vnotes 0.2\elemskip\sk\enotes}%
  2244.  %
  2245.  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2246. \def\barfill{\leaders\hbox{ --}\hfill}%
  2247. \def\octnvrule{\vrule width \z@ height 3\p@ depth 3\p@}%
  2248. \def\octvrule{\vrule width \lthick height 3\p@ depth 3\p@}%
  2249. \def\octsup#1#2{\zcharnote{#1}{\hbox to #2\noteskip
  2250. {\llap{\rm 8}\barfill\octnvrule}}}%
  2251. \def\Octsup#1#2{\zcharnote{#1}{\hbox to #2{\rm 8\barfill\octnvrule}}}%
  2252.  %\check
  2253. \def\octfin#1#2{\zcharnote{#1}{\hbox to #2\noteskip{\llap{\rm 8}\barfill
  2254. --\octvrule}}}%
  2255. \def\Octfin#1#2{\zcharnote{#1}{\hbox to #2{\rm 8\barfill
  2256. --\octvrule}}}%
  2257. \def\octline#1{\zcharnote{#1}{\hbox to \line@width{\llap{\rm 8}\barfill
  2258. \octnvrule\hskip 12\Internote}}}%
  2259. \def\Octline#1{\zcharnote{#1}{\hbox to \line@width{\rm 8\barfill
  2260. \octnvrule\hskip 8\Internote}}}%
  2261.  %\check
  2262. \def\xtuplet#1#2{\global\n@l=#1\relax\global\advance\n@l by -1\relax
  2263. {\divide\noteskip by \n@l\relax\zcharnote{#2}{\kern\n@l\noteskip
  2264.  \hbox to\z@{\hss\it #1\hss}}}}%
  2265. \def\triolet{\xtuplet3}%
  2266.  %\check
  2267.  %
  2268. \let\wlog=\@plainwlog
  2269.  %
  2270. \def\interfacteur{1}%
  2271. \csname musicnorfont\endcsname
  2272. \def\nbinstruments{\maxinstruments}\savemeter
  2273. \csname normalnotesize\endcsname
  2274. \normal  % to get \notes correctly defined
  2275. \resetfacteurs
  2276. \def\nbinstruments{0}%
  2277.  %
  2278. \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or
  2279.  2488\or 2986\or 3583\or 4300\or 5160\fi\relax}
  2280.  %
  2281.  
  2282. \def\endcatcodesmusic{\catcode`\&=\catcode@and
  2283. \catcode`\|=\catcode@vert
  2284. \catcode`\>=\catcode@gt
  2285. \catcode`\<=\catcode@lt
  2286. \catcode`\!=\catcode@excl
  2287. \catcode`\*=\catcode@star
  2288. \catcode`\:=\catcode@sc
  2289. \catcode`\.=\catcode@pt
  2290. \catcodesmusicfalse}
  2291.  
  2292. \endcatcodesmusic
  2293.  
  2294. \catcode`\@=\catcodeat
  2295. \endinput
  2296.  
  2297.